Je fais mes premiers pas avec le pinning et je suis déconcerté par un problème tout simple: apt-cache policy ne reflète pas la configuration dans /etc/apt/preferences. Ou en tout cas pas comme je m'y attendrais.
cat /etc/apt/preferences
Package: *
Pin: release a=testing
Pin-Priority: 900
Package: *
Pin: origin www.debian-multimedia.org, release a=testing
Pin-Priority: 850
Package: *
Pin: release o=Debian
Pin-Priority: -10
Package: vlc, vlc-nox, libass4, libfaad2, libvlccore2, vlc-data, libvlc2
Pin: release a=unstable
Pin-Priority: 990
apt-cache policy vlc
vlc:
Installed: 1.0.2-1
Candidate: 1.0.2-1
Version table:
*** 1.0.2-1 0
-10 http://ftp2.fr.debian.org unstable/main Packages
100 /var/lib/dpkg/status
1.0.1-1+b1 0
990 http://ftp2.fr.debian.org testing/main Packages
Ce qui m'intrigue, c'est que la version unstable ait un score de -10, je m'attendais à 990 et que la version testing ait un score de 990, je m'attendais à 900. Autre source de grand questionnement à quoi correspond le score de 100 pour /var/lib/dpkg/status. (peut-être 990 - (900 -10) ?)
Qu'en pensez-vous? Merci de votre aide.
# man
Posté par nono14 (site web personnel) . Évalué à 2.
extrait:
une priorité égale à 100
est affectée à la version déjà installée (si elle existe).
une priorité égale à 500
est affectée aux versions qui ne sont pas installées et qui
nappartiennent pas à la distribution par défaut.
une priorité égale à 990
est affectée aux versions qui ne sont pas installées et qui
appartiennent à la distribution par défaut.
Quand aucune distribution par défaut na été indiquée, APT affecte
simplement une priorité égale à 100 à toute version installée dun
paquet et une priorité égale à 500 à tout version non installée.
Puis APT applique les règles suivantes pour déterminer la version du
paquet quil faut installer (elles sont listées par ordre de
priorité) :
· Ne jamais revenir en arrière, sauf si la priorité dune version
disponible dépasse 1000. « Revenir en arrière » signifie installer
une version moins récente que la version installée. Il faut noter
qu'aucune des priorités par défaut n'excède 1000 ; de telles
valeurs ne peuvent être définies que dans le fichier des
préférences. Notez aussi quil est risqué de revenir en arrière.
· Installer la version qui possède la priorité la plus haute.
Quand deux (ou plus) versions ont la même priorité, installer la
version la plus récente (c.-à-d. celle · dont le numéro de version
est le plus grand).
Quand deux (ou plus) versions ont la même priorité et le même
numéro de version, mais soit les paquets diffèrent par certaines
métadonnées, soit loption --reinstall a été donnée, installer la
version qui nest pas installée.
En général, la version installée dun paquet (priorité 100) nest pas
aussi récente que les versions disponibles dans les sources listées
dans le fichier sources.list(5)(priorité 500 ou 990). Et donc le paquet
sera mis à niveau avec la commande : apt-get install paquet ou apt-get
dist-upgrade.
La version installée dun paquet peut être - rarement - plus récente
que tout autre version disponible. Les commandes apt-get install paquet
ou apt-get upgrade ne provoquent pas de retour en arrière.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: man
Posté par Croconux . Évalué à 3.
Pour le vlc de testing, les règles applicables sont :
testing -> 900
Debian -> -10.
Or, là c'est 990 qui est appliqué.
Pour la version unstable :
Debian -> -10
vlc unstable -> 900.
C'est -10 qui est appliqué.
La doc ne précise pas clairement ce qui se passe si plusieurs règles correspondent. Voyant de 2e cas, on peut supposer que c'est le première qui match qui l'emporte mais ça n'explique pas le 990 du vlc de testing. La première règle devrait surcharger la priorité par défaut. J'ai peut être un bout d'explication. Si dans la liste des sources tu as mis squeeze pour la version testing, une règle sur testing dans les préférences ne matchera pas. J'ai déjà eu le cas.
J'ai déjà eu des surprises avec le système de préférences. Il y a plusieurs bugs à ce sujet rentrés. La réponse donnée est que le comportement réellement implémenté n'est exactement celui de la doc. Entre autres, "version", "release" et "origin" ne s'appliquent pas pareil. Il y a quelques précisions ici [1].
[1] http://www.xs4all.nl/~carlo17/howto/debian.html#errata
[^] # Re: man
Posté par Anonyme . Évalué à 2.
Très Intéressant à savoir, mais c'est à exclure dans mon cas, je n'ai utilisé que les noms du type testing et unstable. (voir mon sources.list sur http://pastebin.com/m59b7cf2e)
En fait j'ai fait une erreur très bête.
Sur la ligne Package, les noms de paquets doivent être séparés par des espaces et pas par des virgules (ce qui est homogène avec le fonctionnement de apt-get finalement)
c'est-à-dire
Package: vlc vlc-nox libass4 libfaad2 libvlccore2 vlc-data libvlc2
Pin: release a=unstable
Pin-Priority: 990
Pour autant je n'arrive toujours à donner un sens aux indications que me fourni apt-cache policy.
Bon je suis en train de me farcir
man apt_preferences
/usr/share/doc/apt-doc
http://www.xs4all.nl/~carlo17/howto/debian.html (le tuto indiqué au post précédent)
J'espère comprendre un peu mieux.
[^] # Re: man
Posté par Anonyme . Évalué à 2.
a+
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.