Résolution des dépendances APT Pinning

Jessaie de maîtriser le fonctionnement de lépinglage APT sous Debian, mais jai du mal à comprendre comment il résout les priorités.

Jai un fichier source.list qui contient les entrées suivantes dans cet ordre exact:

deb <repository> stretch main deb <repository> testing main deb <repository> unstable main 

Le référentiel suivant contient ces packages par branche:

  • stretch contient le package dependency version 1.0;
  • testing contient le package dependency version 2.0;
  • unstable contient les packages program et dependency version 2.0;

Le paquet program dépend de dependency version 2.0.

Je dois installer le package program, mais je souhaite installer le moins de packages possible à partir de unstable, donc je crée le fichier pour épingler cette branche:

Package: * Pin: release a=unstable Pin-Priority: -1 

Si je comprends nd correctement comment cela fonctionne, il ne devrait installer les packages de unstable que lorsque je le dis explicitement à APT.

Je crée également un apt.conf pour vous assurer que la branche stable est la branche par défaut:

APT::Default-Release "stable"; 

Après avoir exécuté la commande apt-get update, les branches doivent avoir les priorités suivantes:

stable: 990 testing: 500 unstable: -1 

Maintenant, je veux installer le paquet program, pour ce faire, jexécute la commande suivante:

apt-get install -t unstable program 

Ma question est donc de savoir à partir de quelle branche APT tirera le package dependency version 2.0? Étant donné que testing et unstable ont la même version du package, laquelle sera choisie?

Si je bien compris, APT avec loption -t unstable, attribuera une priorité 990 aux paquets appartenant à unstable, mais daprès ce que jai vécu , il le extrait de testing.

Alors pourquoi APT extrait-il les packages de testing qui ont une priorité de 500 tandis que unstable est défini sur 990? De plus, quelle serait la meilleure façon dinstaller le moins de packages possible à partir de unstable?

Commentaires

  • Si la version est la même, alors le fichier est le même également. Apt choisit le plus rapide ou le premier miroir défini, mais lurl du fichier téléchargé est la même. Vérifiez-le vous-même. Les dépôts Debian ne ' ne stockent pas deux fichiers / versions identiques dun paquet en raison de problèmes despace disque.

Réponse

Ceci est expliqué dans le apt_preferences page de manuel :

Plusieurs versions dun package peuvent être disponibles pour linstallation lorsque le fichier sources.list (5) contient des références à plus dune distribution (par exemple, stable et testing). APT attribue une priorité à chaque version disponible. Sous réserve de contraintes de dépendance, apt-get sélectionne la version avec la priorité dinstallation la plus élevée. Les préférences APT remplacent les priorités quAPT attribue aux versions de package par défaut, donnant ainsi à lutilisateur le contrôle sur laquelle est sélectionnée pour linstallation.

Plusieurs instances de la même version dun package peuvent être disponibles lorsque les sources Le fichier .list (5) contient des références à plus dune source. Dans ce cas, apt-get télécharge linstance répertoriée la plus tôt dans le fichier sources.list (5). Les préférences APT naffectent pas le choix de linstance, uniquement le choix de la version.

Les priorités déterminent uniquement la version (comme spécifié par le numéro de version) de un package est installé. Une fois que cela est déterminé, le premier référentiel de packages disponible est utilisé pour le télécharger.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *