1 votes

Pourquoi un nouveau dépôt installerait-il automatiquement les paquets ?

Existe-t-il une situation dans laquelle un référentiel nouvellement ajouté devrait installer les paquets de "dépendance" avant d'être invité à installer quoi que ce soit de nouveau ?

Je viens de rencontrer la situation suivante :

Lorsque mon système a été mis à jour, j'ai ajouté la fonction Certbot ( http://ppa.launchpad.net/certbot/certbot/ubuntu ), et après avoir lancé une mise à jour, neuf paquets ont été signalés comme pouvant être mis à niveau. J'ai essayé de faire une mise à jour et j'ai obtenu le résultat suivant :

$ sudo aptitude safe-upgrade
Resolving dependencies...                
The following NEW packages will be installed:
  python3-certifi{a} python3-idna{a} 
The following packages will be upgraded:
  python-chardet python-pkg-resources python-six python3-chardet python3-configobj python3-pkg-resources python3-requests python3-six python3-urllib3 
9 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 906 kB of archives. After unpacking 1,183 kB will be used.

Je peux comprendre que des paquets soient mis à niveau : le nouveau dépôt contient des versions plus récentes de paquets déjà installés sur mon système, ils sont donc marqués pour être mis à niveau. Mais pourquoi essaie-t-il d'installer nouveau paquets ? Les paquets en question semblent certainement pertinents pour la logiciel sur le référentiel Mais pourquoi seraient-ils installés automatiquement ?

S'il s'agit d'une dépendance d'un élément de mon système, comment fonctionnait-il auparavant ? Comment puis-je savoir exactement ce qui se passe ?

MISE À JOUR

J'ai vérifié les dépendances inversées avec apt-cache ; e.g.,

$ sudo apt-cache rdepends python3-certifi
python3-certifi
Reverse Depends:
python3-requests

Avec la Certbot désactivé, j'obtiens

$ apt-cache depends python3-requests
python3-requests
Depends: python3-urllib3
Depends: <python3:any>
    python3:i386
    python3
Depends: ca-certificates
Depends: python3-chardet
Depends: python3-urllib3

et lorsque je l'active, j'obtiens

$ apt-cache depends python3-requests
python3-requests
Depends: python3-certifi
Depends: python3-chardet
Depends: python3-idna
Depends: python3-urllib3
Depends: <python3:any>
    python3:i386
    python3
Depends: ca-certificates
Depends: python3-urllib3

Je pense donc que la vraie question est la suivante : Les dépendances des paquets sont-elles fonction des paquets/référentiels disponibles ? ? Je pensais que les dépendances devaient être fixes : un paquet nécessite un autre paquet pour fonctionner (qu'il soit disponible ou non) ou non (dans ce cas, il ne s'agit pas vraiment d'une dépendance).

Système :

  • Kubuntu 16.04
  • Kernel 4.13.0-45-generic #50~16.04.1-Ubuntu 64-bit

4voto

N0rbert Points 86925

Vous avez déjà répondu à votre question : PPA a des versions plus récentes des paquets déjà installés, donc après avoir ajouté PPA et exécuté apt-get update APT constate que des versions plus récentes sont disponibles et indique que certains paquets ont été mis à jour.

Vous pouvez obtenir des détails en lançant apt-cache policy :

apt-cache policy python-chardet python-pkg-resources python-six \
python3-chardet python3-configobj python3-pkg-resources python3-requests \
python3-six python3-urllib3 

et vérifier leur origine (voir Tableau des versions ).

Vous pouvez également vérifier à partir de quel endroit les deux nouveaux paquets seront installés et pourquoi ils le seront (vérifiez avec apt-cache rdepends ) :

apt-cache policy python3-certifi python3-idna
apt-cache rdepends python3-certifi python3-idna

Vous pouvez consulter man apt-cache pour plus de détails.

0voto

Ratler Points 326

En utilisant les commandes suggérées par N0rbert et avec l'aide des bonnes personnes du canal IRC OFTC #debian, je suis remonté jusqu'aux paquets et j'ai compris pourquoi cela s'est produit, ce qui est probablement le scénario le plus probable lorsque l'on voit de nouveaux paquets inexpliqués s'installer automatiquement :

Le dépôt nouvellement ajouté contenait une version plus récente d'un paquet existant, qui a été marqué pour la mise à niveau. La nouvelle version du paquet mis à jour avait une nouvelle dépendance (que l'ancienne version n'avait pas), de sorte que la nouvelle dépendance a été marquée pour l'installation automatique. .

Par exemple, la version améliorée du paquet existant python3-requests a python3-certifi en tant que nouvelle dépendance, ce dernier a donc été marqué pour l'installation.

C'est de ma faute si je n'ai pas remarqué que la dépendance inverse de python3-certifi ( python3-requests ) était l'un des paquets mis à jour.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X