Comme son nom ne le dit pas, le dépôt ubuntu.arvernes.dyndns.org hardy main n’est pas un dépôt ubuntu, mais un dépôt dédié au logiciel Ancestris, écrit en Java, et qui ne contient que ce paquet. Je n’ai qu’un seul paquet de chez Sid, Gramps. Je vais quand même me faire un fichier préférences un de ces jours.
J’ai fait un essai en me basant sur ce que disait miki1979 à parir du man d’apt_preferences (le fil complet: enervant-manque-d-explications-fichier-preferences-t25746.html )
[quote]v=none => Correspond à la version, seul la version stable à un numero car c’est la seul a etre publié :
…
o=Unofficial Multimedia Packages => Correspond à l’origine du paquet :
…
a=unstable => Correspond à l’archive (stable, testing, unstable…) :
…
n=sid => Correspond au nom de code de la version, Lenny, Squeeze… C’est un paramètre recement introduit car non disponible avec le apt_preferences de stable :
…
l=Unofficial Multimedia Packages => Correspond à une étiquette (label) :
…
c=main => Correspond au composant et indique si c’est du main, non-free ou free :[/quote]
Il semble que le fichier prefs :
- Applique les règles dans l’ordre
- N’applique pas une règle si elle est inapplicable sans contradiction avec une règle précédente.
Par exemple, un fichier prefs qui ne contient que
Package: *
Pin: release c=non-free
Pin-Priority: 666
donne un pin de 666 à tous les paquets non free, nvidia-glx par exemple
Un fichier prefs de cette forme:
[code]Package: *
Pin: release a=stable
Pin-Priority: 800
Package: *
Pin: release c=non-free
Pin-Priority: 666 [/code]
donne un pin de 666 aux paquets non free qui ne sont pas de stable soit:
root@michel:/home/stef# apt-cache policy nvidia-glx
nvidia-glx:
Installé : 195.36.31-6
Candidat : 195.36.31-6
Table de version :
*** 195.36.31-6 0
800 http://debian.polytech-lille.fr/debian/ squeeze/non-free i386 Packages
666 http://debian.polytech-lille.fr/debian/ wheezy/non-free i386 Package
Et si on modifie le fichiers prefs comme ceci
[code]Package: *
Pin: release a=stable
Pin-Priority: 800
Package: *
Pin: release c=non-free
Pin-Priority: 666
Package: *
Pin: release o=debian
Pin-Priority: 1000
[/code]
rien ne change pour apt-cache policy: l’origine “debian”, bien que plus générale, vient après la stabilité et les dépots “non free”, et ne peut s’appliquer aux paquets “non free” sans contredire la seconde règle. Un essai avec vlc et le même fichier prefs le confirme. apt-cache policy retourne:
root@michel:/home/stef# apt-cache policy vlc
vlc:
Installé : 1.1.3-1squeeze3
Candidat : 1.1.3-1squeeze3
Table de version :
*** 1.1.3-1squeeze3 0
800 http://security.debian.org/ squeeze/updates/main i386 Packages
100 /var/lib/dpkg/status
1.1.3-1squeeze2 0
800 http://debian.polytech-lille.fr/debian/ squeeze/main i386 Packages
1000 http://debian.polytech-lille.fr/debian/ wheezy/main i386 Packages
Tout ce qui touche à la stable est en 800, et la troisième règle des prefs peut s’appliquer sans contradiction sur ce qui vient de la testing.
En tous cas je crois que c’est ça. De là à construire un fichier pref “original” et complet, ça me paraît chaud.
Stef
[quote=“michel”]La priorité du paramètre release se modifie en ajoutant au fichier prefs: Il ne joue que sur les paquets installés via dpkg.
Package: *
Pin: release a=now
Pin-priority: xxx
Il ne joue bien que sur les paquets installés via dpkg, semble t-il.
Quant à le modifier lui (a=yesterday…), je ne vois pas !
Stef[/quote]
Sauf erreur de ma part le a=now concerne les paquets installés maintenant. Du coup mettre a=now a 1001 empêchera tout upgrade.
Mais c’est un constat empirique, ça peut être incomplet, ou je peux me tromper en partie.
Sinon, de nombreux points discutés sur ce fil sont abordés ici : http://www.isalo.org/wiki.debian-fr/index.php?title=L%27etiquetage_de_paquets_via_le_fichier_/etc/apt/preferences
Si il manque des trucs qui sont évoqués ici, pensez à le compléter.
Je viens de tester avec des prefs de 1001 pour release now, et apt-cache policy ne prend en compte que les paquets installés à la mano (je ne peux pas faire d’upgrade pour tester, en stable, rien de neuf sous le soleil pour l’instant). Je ne crois pas que ça fige le système en son entier.
root@michel:/home/stef# apt-cache policy nvidia-glx
nvidia-glx:
Installé : 195.36.31-6
Candidat : 195.36.31-6
Table de version :
*** 195.36.31-6 0
500 http://debian.polytech-lille.fr/debian/ squeeze/non-free i386 Packages
500 http://debian.polytech-lille.fr/debian/ wheezy/non-free i386 Packages
1001 /var/lib/dpkg/status
root@michel:/home/stef# apt-cache policy human-theme
human-theme:
Installé : 0.37
Candidat : 0.37
Table de version :
*** 0.37 0
1001 /var/lib/dpkg/status
Stef
J’ai mis à jour le truc et astuces sur le sources.list
Je viens d’essayer le nouveau sources.list mis à jour par fran.b dans la discussion du trucs et astuces, les voir pour consultation…
Ce n’est pas lui qui semble poser problème, mais le fichier preferences pour testing.
Si je tente d’ouvrir Synaptic, j’ai la fenêtre d’erreur:
“Une erreur s’est produite
Les détails suivants sont donnés:
E: Enregistrement non valable dans le fichier de préférences /etc/apt/preferences, aucune entrée « Package ».
E: _cache->open() failed, please report.”
Avec comme seule option le bouton fermer, qui referme automatiquement Synaptic.
Si je lance en console un aptitude-update, j’obtiens:
[quote]root@MaDebianTesting:/home/andre# aptitude update
E: Enregistrement non valable dans le fichier de préférences /etc/apt/preferences, aucune entrée « Package ».
E: Enregistrement non valable dans le fichier de préférences /etc/apt/preferences, aucune entrée « Package ».
Prendre : 1 debian-multimedia.org squeeze Release.gpg [198 B]
Ign debian-multimedia.org/ squeeze/main Translation-en
Prendre : 2 debian-multimedia.org/ squeeze/main Translation-fr [14 B]
Prendre : 3 ftp.fr.debian.org squeeze Release.gpg [1 671 B]
Prendre : 4 security.debian.org squeeze/updates Release.gpg [835 B] [/quote]
suivi de toute la consultation des dépôts, jusqu’à la fin:
[quote]Prendre : 84 ftp.fr.debian.org experimental/non-free amd64 Packages [11,2 kB]
Prendre : 85 ftp.fr.debian.org sid/contrib amd64 2011-02-22-1409.25.pdiff [1 612 B]
Prendre : 86 ftp.fr.debian.org sid/non-free amd64 2011-02-22-1409.25.pdiff [414 B]
Prendre : 87 ftp.fr.debian.org experimental/main amd64 2011-02-22-1409.25.pdiff [5 470 B]
27,9 Mo téléchargés en 2min 30s (185 ko/s)
E: Enregistrement non valable dans le fichier de préférences /etc/apt/preferences, aucune entrée « Package ».
E: Enregistrement non valable dans le fichier de préférences /etc/apt/preferences, aucune entrée « Package ».
root@MaDebianTesting:/home/andre# [/quote]
D’où vient l’erreur ?
Oui à priori c’est une faute de frappe dans une ligne, il y a deux fois package, je réessaye…
Attention, il y avait un double copier coller que j’ai rectifié a posteriori, vérifie…
J’avais même pô vu !
Quel oeuf… (je parle de moi !)
Dis donc ça faisait un sacré fichier preferences, ça, et ça m’a même pas mis la puce à l’oreille.
J’ai encore des progrès à faire !
[quote=“michel”]Je viens de tester avec des prefs de 1001 pour release now, et apt-cache policy ne prend en compte que les paquets installés à la mano (je ne peux pas faire d’upgrade pour tester, en stable, rien de neuf sous le soleil pour l’instant). Je ne crois pas que ça fige le système en son entier.
root@michel:/home/stef# apt-cache policy nvidia-glx
nvidia-glx:
Installé : 195.36.31-6
Candidat : 195.36.31-6
Table de version :
*** 195.36.31-6 0
500 http://debian.polytech-lille.fr/debian/ squeeze/non-free i386 Packages
500 http://debian.polytech-lille.fr/debian/ wheezy/non-free i386 Packages
1001 /var/lib/dpkg/status
root@michel:/home/stef# apt-cache policy human-theme
human-theme:
Installé : 0.37
Candidat : 0.37
Table de version :
*** 0.37 0
1001 /var/lib/dpkg/status
Stef[/quote]
Pourtant ça peut concerner les paquets provenant des dépôts quand même comme indiqué dans le tuto que j’ai mis en lien :
[quote]Par exemple si je veux rétrograder ardour de la version 1:2.8.11-1 présente dans sid à la version 1:2.8.9-1 présente dans testing, j’effectuerai un aptitude install ardour/testing avant d’ajouter cette entrée dans le preferences: […]
Package: ardour
Pin: release a=now
Pin-Priority: 1001
[/quote]
Dans l’exemple cité le paquet n’est pas installé “à la mano” mais provient bien des dépôts, et a=now en empêche la mise à jour.
Autre exemple :
Avant :
J’ajoute ceci au preferences :
[quote] Package: *
Pin: release a=now
Pin-Priority: 1001[/quote]
Puis je fais aptitude update.
Après :
Je supprime mon fichier preferences et refait un update :
Deux des paquets en question sont bien des paquets provenant des dépôts, seul le troisième à été compilé et bloqué avec la commande aptitude hold.
Salut,
Alors merci Youki, j’avais encore dit une bêtise comme souvent… .
Tu as raison, et “now” veut dire “quand il se passe quelque chose” et pas seulement “qui concerne les paquets déjà installés sur le système”. (j’écris ça après avoir rédigé le post, et pas mal nagé, voir après)
Tentative…
Je me dis vec un fichier prefs qui ne contient que :
Package: *
Pin: release a=now
Pin-priority: -10
apt-get -s dist-upgrade
( Pour ceux qui voudraient tenter la manip, n’oubliez pas le “-s”, je ne voudrais pas me faire lyncher non plus. Et ça ne marche qu’avec apt-get, pas aptitude)
aurait dû me désinstaller tout le système. En fait, seule une partie des paquets est proposée à la désinstallation, avec une sortie un peu étrange:
Lecture des listes de paquets...
Construction de l'arbre des dépendances...
Lecture des informations d'état...
Les NOUVEAUX paquets suivants seront installés :
growisofs libfile-basedir-perl libfile-desktopentry-perl
libfile-mimeinfo-perl libpipeline1
...
311 mis à jour, 5 nouvellement installés, 0 à enlever et 1 non mis à jour.
Inst base-files [6.0] (6.1 Debian:testing [i386])
Conf base-files (6.1 Debian:testing [i386])
Inst sensible-utils [0.0.4] (0.0.6 Debian:testing [all])
Conf sensible-utils (0.0.6 Debian:testing [all])
Inst debianutils [3.4] (3.4.4 Debian:testing [i386])
...
Premier temps: impossible d’obtenir ce nombre de 311 en listant les paquets. Je me dis que ça ne concerne que les paquets marqués comme installés manuellement, mais ça ne marche pas.
aptitude search ~i | grep -v "^..A"
me renvoie 376 paquets installés manuellement (peut être n’est ce pas la bonne commande, par ailleurs)
Second temps: j’avais conservé mon sources.list d’origine. Je le vide, et relance la commande apt-get -s dist-upgrade. Rien ne se passe.
Troisième temps: le sources.list comprenait stable et testing, où le testing avait dans le premier test la priorité, puisque toutes mes priorités étaient a 500 par défaut sauf pour release a=now. J’étais en dehors du test réglé en stable prioritaire. Peut être ne désinstalle t-il que les paquets qui
doivent passer à testing. Je réessaie la commande apt-get -s… en mettant seulement les depots de stable au sources.list. Je n’obtiens rien.
Quatrieme et dernier temps: je mets mon sources.list en testing, fichier pref vierge: 311 mises à jour.
D’où: une priorité à -10 ne désinstalle que les paquets qui auraient dû l’être de toute façon, alors que 1001 les protège. Autrement dit, lorsqu’un paquet doit être modifié lors d’une mise à jour, c’est là que apt se réfère à a=now pour savoir quoi faire.
Cinquième test qui le confirme: avec un source.list en testing, et un fichier pref qui ne contient que release a=now avec une priorité de 501, supérieure au 500 qui est attribué par défaut, rien ne se passe.
Une dernière chose là dedans, qui suppose d’effacer ou de mettre un warning à tous mes posts précédents , lorsque Mattotop a utilisé des chiffres différents pour ses fichiers prefs, ça marche. Les priorités sont bien graduelles et non par seuil… Je ne sais pas si c’était clair pour vous, mais je croyais qu’il y avait seulement des différences à 500 et 990 par exemple.
(Edit: si seuls les paquets installés à la main semblaient avoir une priorité fixée par le release a=now, c’est qu’aucune autre règle de prefs ne s’applique à eux)
Bon, voilà…!
Stef