Etc/apt/preferences et les expressions régulières

Bonjour :slightly_smiling:
je souhaite modifier mon /etc/apt/preferences (base T&A de mattotop) pour avoir l’installation noyau et headers à partir des dépot sid (je précise que je suis en squeeze (testing)

donc je suppose que ça devrait donner ceci :

le seul moyen que j’ai trouver c’est de donner le nom complet des paquet dans ce cas ça marche… Mais quand une nouvelle version arrive… tout à refaire … Est-ce que les expressions régulières ne marche pas ? Ai-je loupé un paquet ?

merci d’avance :smiley:

Attention a cette ligne, c’est pas conforme a la syntaxe de preferences.
Enleves-la!

les * ne marchent pas dans le fichier preferences.
mais tu peux utiliser les méta-paquets:

Package: linux-image-2.6-amd64 linux-headers-2.6-amd64 Pin: release a=unstable, o=Debian Pin-Priority: 901à adapter selon ton architecture

Si, les ‘*’ fonctionnent parfaitement mais comment veux-tu passer en ‘Sid’ su tu mets des préférences inférieures à, celles de stable et testing ?
C’est le contraire qu’il convient de faire .

Attention a cette ligne, c’est pas conforme a la syntaxe de preferences.
Enleves-la![/quote]
+1

[quote]Package: *
Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages
Pin-Priority: 999

Package: *
Pin: release o=Debian,a=unstable,l=Debian
Pin-Priority: 998
[/quote]
Rajoute un ‘9’ devant

[quote=“ricardo”]Si, les ‘*’ fonctionnent parfaitement[/quote]il y a * et * en fait…
les * au sens des méta-caractères (pour remplacer la fin d’une expression, à ne pas confondre avec « Package: * ») ne fonctionnent pas pour les noms de paquets (mais fonctionnent pour les versions par contre)

Ceci dit, tu pourrais te passer du pinning en mettant un priorité supérieure à 100 pour unstable. Ainsi, les paquets que tu auras installés depuis unstable (avec apt-get install -t unstable paquet, par exemple) seront mis à jour depuis la branche unstable

Rajoute un ‘9’ devant
[/quote]

Ah oui mais non il va tout me mettre en unstable là ! Je veux juste les noyaux et les headers !

[quote=“ricardo”]Si, les ‘*’ fonctionnent parfaitement mais comment veux-tu passer en ‘Sid’ su tu mets des préférences inférieures à, celles de stable et testing ?
C’est le contraire qu’il convient de faire .
[/quote]

En fait il me semble qu’il y a un ordre dans le fichier préférences si les fichiers sont dans plusieurs groupe c’est le dernier groupe cité qui l’emporte. D’ailleurs, ça marche avec le nom complets des paquets

+1 mais c’est lourd de changer chaque fois qu’il y a un nouveau noyau

Et ben oui mais alors c’est à dormir debout ! si je commente une série entière genre

#Package: * #Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages #Pin-Priority: 99
aptitude bloque direct ! Mais cette ligne là, je sais pas pourquoi elle ne provoque pas d’erreur ! Peux être y a-t-il une tolérance pour la première ligne d’une série de sorte que l’on puisse insérer un commentaire ?

ça marche vraiment quand je fais ça…

+2

C’est ça le bins ! Merci je vais faire comme ça alors ! :smiley: :smiley:

:smt005

Oui tu as bien décris, c’est a dormir debout, c’est ce que je me suis dit aussi :slightly_smiling:
La réponse est simple:
PAAASSS de ligne avec des #
Les commentaires c’est…
suspense… :smiley:
Explanation:

Voilà.

dans les fait la ligne :

## Kernel-sid
ne provoque aucune erreur…

[quote=“Baruch”][quote=“ricardo”]
Rajoute un ‘9’ devant

[quote]Package: *
Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages
Pin-Priority: 999

Package: *
Pin: release o=Debian,a=unstable,l=Debian
Pin-Priority: 998
[/quote]
Rajoute un ‘9’ devant
[/quote]

Ah oui mais non il va tout me mettre en unstable là ! Je veux juste les noyaux et les headers !

[/quote]

Mille Z’excuses, j’avais compris que tu voulais passer en Sid. :blush:

Non non, pas d’erreurs car ca doit vouloir dire autrechose. Mais surement pas commentaire.
J’ai perdu un bon moment sur ce truc.

D’ailleurs
man apt_preferences

[quote] Lignes facultatives dans le fichier des préférences
Toute entrée du fichier des préférences peut commencer par une ou plusieurs lignes contenant le mot Explanation:. Cela permet des commentaires.[/quote]

[quote=“ignatioza”]Non non, pas d’erreurs car ca doit vouloir dire autrechose. Mais surement pas commentaire.
J’ai perdu un bon moment sur ce truc.
[/quote]

oui sans doute pas a conseiller les # en tout cas… le jour où ça fait sauter les preferences en upgrade j’aurai l’air malin ! :laughing:

non justement pas :laughing:
pas grave en même je ne fais rien avant d’avoir compris pourquoi, on fini par prendre de bon réflexe sous debian :smt003

[quote=“ignatioza”]D’ailleurs
man apt_preferences

[quote] Lignes facultatives dans le fichier des préférences
Toute entrée du fichier des préférences peut commencer par une ou plusieurs lignes contenant le mot Explanation:. Cela permet des commentaires.[/quote][/quote]
Merci de ce rappel, j’ai cherché il y a quelques temps, pourquoi un fichier preferences ne fonctionnait pas chez un ami.
Il y avait les lignes ############# de séparation :unamused:
Je saurai, maintenant, qu’il faut commencer ces lignes par
Explanation:
Il n’empêche que cette particularité est sotte car dans tout le reste, une ligne de commentaire commence toujours par ‘#’

Oui c’est un peu tordu. Enfin, en C aussi les commentaires ne sont pas #

Alors… bourrin que je suis, j’ai telechargé le source de apt, et on a pas mal d’infos. C’est du C++ utilisant les STL. C’est rare.

D’abord les priorités. Perso j’avais jamais rien compris a la logique, mais je me rends compte que les plages sont codées en dur.

[quote] Priority Table:

1000 -> inf = Downgradeable priorities
1000 = The ‘no downgrade’ pseduo-status file
100 -> 1000 = Standard priorities
990 = Config file override package files
989 = Start for preference auto-priorities
500 = Default package files
100 = The status file
0 -> 100 = NotAutomatic sources like experimental
-inf -> 0 = Never selected
[/quote]

Sinon, aucune mention apropos de “Explanation:” !! :confused:
J’en deduirai presque, que tout terme qui n’est pas un mot clef peut etre utilisé?
Toto:

?

Y a ca dans le code, en anglais… :

// PreferenceSection class - Overriding the default TrimRecord method /*{{{*/ // --------------------------------------------------------------------- /* The preference file is a user generated file so the parser should therefore be a bit more friendly by allowing comments and new lines all over the place rather than forcing a special format */ class PreferenceSection : public pkgTagSection { void TrimRecord(bool BeforeRecord, const char* &End) { for (; Stop < End && (Stop[0] == '\n' || Stop[0] == '\r' || Stop[0] == '#'); Stop++) if (Stop[0] == '#') Stop = (const char*) memchr(Stop,'\n',End-Stop); } };
Hum c’est clair comme de l’eau de roche… :smiley:

Il doit y avoir un moyen.
Peut-etre

[quote]#
#Mon commentaire
[/quote]

Pour éviter les problèmes de commentaires, avec la version actuelle d’apt en Sid un répertoire /etc/apt/preferences.d/ permet de scinder le fichier preferences de la même façon que le sources.list ou le apt.conf…
Ainsi il suffit de nommer de façon explicite chaque fichier pour éviter le besoin de commentaires.