45
modifications
m (Mise en page) |
m (Mise en page) |
||
Ligne 1 : | Ligne 1 : | ||
== Qu'est-ce que sont l'etiquetage et le fichier /etc/apt/preferences? == | == Qu'est-ce que sont l'etiquetage et le fichier /etc/apt/preferences? == | ||
Ligne 12 : | Ligne 10 : | ||
Le fichier de preferences sert a modifier les priorites qui sont affectees aux paquets par APT, et ce par l'intermediaire de regles s'appliquant a un, plusieurs ou un ensemble de paquets (et non a des depots, c'est un abus de language qui peut nuire a la comprehension du fonctionnement des regles). Cette methode peut etre utilisee pour choisir la version des paquets que l'on veut installer ou si l'on souhaite bloquer/suivre un ou des paquets particuliers. | Le fichier de preferences sert a modifier les priorites qui sont affectees aux paquets par APT, et ce par l'intermediaire de regles s'appliquant a un, plusieurs ou un ensemble de paquets (et non a des depots, c'est un abus de language qui peut nuire a la comprehension du fonctionnement des regles). Cette methode peut etre utilisee pour choisir la version des paquets que l'on veut installer ou si l'on souhaite bloquer/suivre un ou des paquets particuliers. | ||
En gros, '''un fichier preferences n'est utile que si l'on veut mixer differentes branches de debian''' (par exemple sid avec testing et stable) ou bien lors de l'ajout de depots non officiels dont on veut "affiner" le comportement. '''Et il n'est utile que si l'on a de bonnes raisons de le faire! Un mauvais usage de l'etiquetage peut tres vite casser votre systeme.''' | En gros, '''un fichier preferences n'est utile que si l'on veut mixer differentes branches de debian''' (par exemple sid avec testing et stable) '''ou bien lors de l'ajout de depots non officiels dont on veut "affiner" le comportement'''. '''Et il n'est utile que si l'on a de bonnes raisons de le faire! Un mauvais usage de l'etiquetage peut tres vite casser votre systeme.''' | ||
Bien que la fonction de pinning d'APT decrite dans apt_preferences (5) soit puissante, ses effets peuvent etre difficiles a comprendre et a gerer. Vous devriez la considerer comme une Fonction Avancee. | Bien que la fonction de pinning d'APT decrite dans apt_preferences (5) soit puissante, ses effets peuvent etre difficiles a comprendre et a gerer. | ||
Vous devriez la considerer comme une Fonction Avancee. | |||
Ligne 29 : | Ligne 28 : | ||
[http://forum.debian-fr.org/viewtopic.php?f=3&t=24530| mettre en blacklist des mises à jour APT]<br/> | [http://forum.debian-fr.org/viewtopic.php?f=3&t=24530| mettre en blacklist des mises à jour APT]<br/> | ||
[http://forum.debian-fr.org/viewtopic.php?f=3&t=25746| Énervant manque d'explications: fichier preferences]<br/> | [http://forum.debian-fr.org/viewtopic.php?f=3&t=25746| Énervant manque d'explications: fichier preferences]<br/> | ||
Vous pouvez egalement trouver des informations sur l'etiquetage en tapant '''man apt_preferences''' dans un terminal. | Vous pouvez egalement trouver des informations sur l'etiquetage en tapant '''man apt_preferences''' dans un terminal. | ||
Ligne 66 : | Ligne 66 : | ||
Detaillons ligne par ligne les entrees du fichier preferences: | Detaillons ligne par ligne les entrees du fichier preferences: | ||
==== Ligne Package ==== | ==== Ligne Package ==== | ||
Ligne 74 : | Ligne 75 : | ||
Cette ligne servira a indiquer quels paquets seront concernes par l'etiquetage de cette entree. Pour cela on se sert d'une (ou plusieures) variable(s) indiquee(s) a la ligne ''release'' du ''apt-cache policy'', dans l'exemple precedent: r''elease v=5.0.5,o=Debian,a=stable,n=stable,l=Debian,c=contrib''. | Cette ligne servira a indiquer quels paquets seront concernes par l'etiquetage de cette entree. Pour cela on se sert d'une (ou plusieures) variable(s) indiquee(s) a la ligne ''release'' du ''apt-cache policy'', dans l'exemple precedent: r''elease v=5.0.5,o=Debian,a=stable,n=stable,l=Debian,c=contrib''. | ||
Les fichiers de configuration des depots se trouvent dans '''/var/lib/apt/lists/'''. La valeur de ces variables (v,o,a,n,...) est indiquee dans les fichiers '''*Release''' comme par exemple '''/var/lib/apt/lists/ftp2.fr.debian.org_debian_dists_stable_Release''' dont voici la partie qui nous interesse: | Les fichiers de configuration des depots se trouvent dans '''/var/lib/apt/lists/'''. La valeur de ces variables (''v,o,a,n,...'') est indiquee dans les fichiers '''*Release''' comme par exemple '''/var/lib/apt/lists/ftp2.fr.debian.org_debian_dists_stable_Release''' dont voici la partie qui nous interesse: | ||
Origin: Debian | Origin: Debian | ||
Ligne 99 : | Ligne 100 : | ||
Package: * -> L'ensemble des paquets | Package: * -> L'ensemble des paquets | ||
Pin: release o=Debian,a=stable -> se trouvant dans des depots dont la variable Origin (o) a pour valeur "Debian" et la variable Suite (a) a pour valeur "stable" | Pin: release o=Debian,a=stable -> se trouvant dans des depots dont la variable Origin (o) a pour valeur "Debian" | ||
et la variable Suite (a) a pour valeur "stable" | |||
Pin-Priority: 900 -> ont une priorite de 900 | Pin-Priority: 900 -> ont une priorite de 900 | ||
Et cette entree ci: | Et cette entree ci: | ||
Ligne 107 : | Ligne 110 : | ||
Pin: release a=now | Pin: release a=now | ||
Pin-Priority: 1001 | Pin-Priority: 1001 | ||
Se lit donc comme suit: | Se lit donc comme suit: | ||
Ligne 134 : | Ligne 138 : | ||
n= correspond a Codename | n= correspond a Codename | ||
dans notre exemple -> Pin: release n=stable | dans notre exemple -> Pin: release n=stable | ||
On peut donc inclure une ou plusieures de ces variables dans la ligne ''Pin''. Il n'est pas forcement utile de les inclure toutes, une ou deux bien utilisees peuvent tout a fait etre suffisantes. | On peut donc inclure une ou plusieures de ces variables dans la ligne ''Pin''. Il n'est pas forcement utile de les inclure toutes, une ou deux bien utilisees peuvent tout a fait etre suffisantes. | ||
Ligne 141 : | Ligne 146 : | ||
C'est sur cette ligne qu'est indiquee la priorite du paquet ou groupe de paquets. Elle doit etre un entier positif ou negatif. Ces priorites sont interpretes a peu pres comme suit: | C'est sur cette ligne qu'est indiquee la priorite du paquet ou groupe de paquets. Elle doit etre un entier positif ou negatif. Ces priorites sont interpretes a peu pres comme suit: | ||
P > 1000 | P > 1000 | ||
Ligne 163 : | Ligne 167 : | ||
Les quelques recommandations qui suivent devraient vous aider a etablir des priorites qui ne mettront pas votre systeme en danger. Dans ce qui suit, ''branche principale'' designe la branche de Debian que vous avez choisie de suivre en priorite (stable, testing ou sid), les autres depots presents dans le sources.list ne servant qu'a y piocher des paquets si besoin est. | Les quelques recommandations qui suivent devraient vous aider a etablir des priorites qui ne mettront pas votre systeme en danger. Dans ce qui suit, ''branche principale'' designe la branche de Debian que vous avez choisie de suivre en priorite (stable, testing ou sid), les autres depots presents dans le sources.list ne servant qu'a y piocher des paquets si besoin est. | ||
- '''Garder des priorites identiques pour les depots Debian officiels d'une meme branche'''. C'est le comportement par defaut (quand l'on a que les depots de la branche principale dans le sources.list sans preferences). Tout manquement a cette regle casse le comportement par defaut et peut generer des resultats tres dommageables car non prevus par les devellopeurs Debian. | - '''Garder des priorites identiques pour les depots Debian officiels d'une meme branche'''. C'est le comportement par defaut (quand l'on a que les depots de la branche principale dans le sources.list sans preferences). Tout manquement a cette regle casse le comportement par defaut et peut generer des resultats tres dommageables car non prevus par les devellopeurs Debian. | ||
- '''Attribuer une priorite comprise entre 500 et <990 pour la branche principale''' et la/les branche(s) comportant des paquets aux versions =< a cette branche principale. | - '''Attribuer une priorite comprise entre 500 et <990 pour la branche principale''' et la/les branche(s) comportant des paquets aux versions =< a cette branche principale. | ||
Pourquoi <990? Car lorsque l'on utilise l'option ''-t | Pourquoi <990? Car lorsque l'on utilise l'option ''-t branche'' pour piocher des paquets dans une autre branche que la principale, celle-ci devient temporairement la branche par defaut et a donc une priorite de 990. On comprend donc aisement qu'avoir une priorite =>990 pour la branche principale perturbe cette option. | ||
Les methodes pour piocher dans les differents depots sont expliquees un peu plus bas, dans le paragraphe ''Comment piocher dans les differents depots du sources.list?'' ce qui devrait clarifier ce point. | Les methodes pour piocher dans les differents depots sont expliquees un peu plus bas, dans le paragraphe ''Comment piocher dans les differents depots du sources.list?'' ce qui devrait clarifier ce point. | ||
- '''Attribuer une priorite comprise entre 1 et <100 pour la/les branche(s) comportant des paquets aux versions > a la branche principale'''. Ceci permet d'installer les paquets a la demande ou a ''aptitude'' de le faire simplement en cas de besoins sans pour autant "suivre" les paquets installes a partir des ces depots. | - '''Attribuer une priorite comprise entre 1 et <100 pour la/les branche(s) comportant des paquets aux versions > a la branche principale'''. Ceci permet d'installer les paquets a la demande ou a ''aptitude'' de le faire simplement en cas de besoins sans pour autant "suivre" les paquets installes a partir des ces depots. | ||
Si on veut les "suivre", c'est a dire qu'ils se mettent a jours automatiquement si une nouvelle version est placee dans ces depots lors d'une mise a jour, il est normalement suffisant d'attribuer une priorite a ces branches comprise entre 100 et <500. Si c'est envisageable individuellement ce n'est pas prudent pour un preferences generique du fait des dependances. | Si on veut les "suivre", c'est a dire qu'ils se mettent a jours automatiquement si une nouvelle version est placee dans ces depots lors d'une mise a jour, il est normalement suffisant d'attribuer une priorite a ces branches comprise entre 100 et <500. Si c'est envisageable individuellement ce n'est pas prudent pour un preferences generique du fait des dependances. | ||
- D'un point de vue pratique, '''utiliser des chiffres ronds''' (900, 800, 90...). Cela permet d'adapter facilement le preferences en fonction des besoins individuels (ajout de depots, etc) sans avoir a decaler toutes les autres entrees dans le preferences et c'est ainsi beaucoup plus lisible et donc facile de faire la differences entre les differentes priorites des depots a la lecture du ''apt-cache policy''. | - D'un point de vue pratique, '''utiliser des chiffres ronds''' (900, 800, 90...). Cela permet d'adapter facilement le preferences en fonction des besoins individuels (ajout de depots, etc) sans avoir a decaler toutes les autres entrees dans le preferences et c'est ainsi beaucoup plus lisible et donc facile de faire la differences entre les differentes priorites des depots a la lecture du ''apt-cache policy''. | ||
Ligne 186 : | Ligne 194 : | ||
Il y a deux manieres d'indiquer a APT d'aller piocher dans des depots differents que ceux de la branche principale (les commandes qui suivent sont valable a la fois pour ''apt-get'' et pour ''aptitude''): | Il y a deux manieres d'indiquer a APT d'aller piocher dans des depots differents que ceux de la branche principale (les commandes qui suivent sont valable a la fois pour ''apt-get'' et pour ''aptitude''): | ||
- Vous utiliserez '''apt-get install -t | - Vous utiliserez '''apt-get install -t branche paquet(s)''' si vous voulez installer un paquet avec une version superieure a celle qui se trouve dans votre branche principale. Par exemple, cette branche est testing et vous voulez utiliser le paquet ardour present dans sid parce qu'il est plus recent, vous utiliserez cette commande: | ||
apt-get install -t unstable ardour | apt-get install -t unstable ardour | ||
Lorsque l'on utilise l'option ''-t branche'' pour installer des paquets d'une autre branche que la principale, celle-ci devient temporairement la branche par défaut et a donc une priorite de 990. Du coup les dependances sont mieux gerees. | |||
- Vous utiliserez '''apt-get install paquet/ | |||
- Vous utiliserez '''apt-get install paquet/branche''' si vous voulez downgrader la version d'un paquet. Par exemple, votre branche principale est unstable et vous voulez installer la version d'ardour de testing parce qu'elle est moins boguee, vous utiliserez cette commande: | |||
apt-get install ardour/testing | apt-get install ardour/testing | ||
Ligne 200 : | Ligne 209 : | ||
Le probleme c'est que APT voudra remettre a niveau le paquet downgrade lors de la prochaine mise a jour. Il faut donc bloquer le paquet dans sa version nouvellement installee. Pour cela il y a deux possibilites: | Le probleme c'est que APT voudra remettre a niveau le paquet downgrade lors de la prochaine mise a jour. Il faut donc bloquer le paquet dans sa version nouvellement installee. Pour cela il y a deux possibilites: | ||
Soit | - Soit '''utiliser la commande aptitude hold paquet'''. Pour debloquer le paquet il suffira de lancer la commande '''aptitude unhold paquet'''. La commande '''aptitude search ~U''' permet de voir la liste des paquets a mettre a jour, les paquets que vous avez bloque par cette methode y apparaitront precedes d'un '''h'''. | ||
Par exemple si je veux downgrader ardour de la version 1:2.8.11-1 presente dans sid a la version 1:2.8.9-1 presente dans testing, j'effectuerai un '''aptitude install ardour/testing''' avant d'ajouter cette entree dans le preferences : | - Soit '''etiqueter le paquet''' dans le fichier preferences '''avec une priorite de 1001''' et en renseignant la ligne ''Pin'' avec le numero de version du paquet bloque ou avec la variable release''' a=now'''. | ||
Par exemple si je veux downgrader ardour de la version 1:2.8.11-1 presente dans sid a la version 1:2.8.9-1 presente dans testing, j'effectuerai un '''aptitude install ardour/testing''' avant d'ajouter cette entree dans le preferences: | |||
Package: ardour | Package: ardour | ||
Ligne 216 : | Ligne 227 : | ||
# apt-cache policy ardour | # apt-cache policy ardour | ||
ardour: | ardour: | ||
Installé : 1:2.8.11-1 | Installé: 1:2.8.11-1 | ||
Candidat : 1:2.8.11-1 | Candidat: 1:2.8.11-1 | ||
Table de version : | Table de version: | ||
*** 1:2.8.11-1 0 | *** 1:2.8.11-1 0 | ||
500 http://ftp2.fr.debian.org sid/main Packages | 500 http://ftp2.fr.debian.org sid/main Packages | ||
Ligne 233 : | Ligne 244 : | ||
Dans notre exemple, avec cette entree, le paquet ardour qui est installe maintenant sera forcement installe meme s'il s'agit d'un retour en arriere, donc ne sera pas mis a jour. | Dans notre exemple, avec cette entree, le paquet ardour qui est installe maintenant sera forcement installe meme s'il s'agit d'un retour en arriere, donc ne sera pas mis a jour. Pour debloquer le paquet il suffira d'enlever son entree du fichier preferences. | ||
'''N'hesitez pas a simuler en utilisant l'option de simulation -s'''. Par exemple faire '''apt-get install -s ardour/testing''' va simuler le downgrade du paquet ardour sans l'appliquer reellement, ca permet de verifier que le comportement de la commande est bien celui que vous attendez. Si tout se passe bien effectuez reellement la commande en enlevant l'option ''-s''. cette option fonctionne egalement avec ''aptitude'', ou encore en combinaison avec l'option ''-t'' (par exemple ''apt-get install -s -t unstable ardour''), aussi pour effectuer des mises a jours (par exemple ''aptitude safe-upgrade -s''), etc... C'est une securite non negligeable. | |||
'''N'hesitez pas a simuler en utilisant l'option de simulation | |||
Ligne 247 : | Ligne 256 : | ||
L'interet de la branche stable est sa stabilite (etonnant non?). Donc la melanger avec les autres branches est souvent une tres mauvaise idee. '''Si vous avez besoin de paquets plus recents preferez les depots backports, la compilation, ou tout simplement utilisez une autre branche principale a la place!''' | L'interet de la branche stable est sa stabilite (etonnant non?). Donc la melanger avec les autres branches est souvent une tres mauvaise idee. '''Si vous avez besoin de paquets plus recents preferez les depots backports, la compilation, ou tout simplement utilisez une autre branche principale a la place!''' | ||
Etant donne qu''''il est fortement deconseille de melanger stable et les branches superieures''', il est preferable de n'avoir que ses entrees dans le sources.list. Le preferences est donc inutile, sauf | Etant donne qu''''il est fortement deconseille de melanger stable et les branches superieures''', il est preferable de n'avoir que ses entrees dans le sources.list. Le preferences est donc inutile, sauf eventuellement si vous souhaitez utiliser les depots backports. Dans ce cas, surtout n'en abusez pas. '''Installez uniquement les paquets des backports dont vous avez vraiment besoin'''. | ||
Le sources.list adequat dans ce cas peut-etre le suivant (changez les adresses des depots stable par d'autres que vous prefereriez si vous le souhaitez): | Le sources.list adequat dans ce cas peut-etre le suivant (changez les adresses des depots stable par d'autres que vous prefereriez si vous le souhaitez): | ||
Ligne 264 : | Ligne 273 : | ||
# stable multimedia | # stable multimedia | ||
deb http:// | deb http://www.debian-multimedia.org stable main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org stable main non-free | ||
# backports | # backports | ||
Ligne 272 : | Ligne 281 : | ||
'''Les preferences des backports ont par defaut une valeur de 1'''. Si vous souhaitez choisir par vous meme quand installer une eventuelle nouvelle version disponible dans ces depots, vous n'avez pas besoin de preferences. | '''Les preferences des backports ont par defaut une valeur de 1'''. Si vous souhaitez choisir par vous meme quand installer une eventuelle nouvelle version disponible dans ces depots, vous n'avez pas besoin de preferences. | ||
Si vous souhaitez que le paquet installe depuis les backports soit mis a jour automatiquement en cas de nouvelle version disponible dans ces depots, alors vous n'aurez besoin que de cette seule entree dans le fichier preferences : | Si vous souhaitez que le paquet installe depuis les backports soit mis a jour automatiquement en cas de nouvelle version disponible dans ces depots, alors vous n'aurez besoin que de cette seule entree dans le fichier preferences: | ||
Package: * | Package: * | ||
Ligne 283 : | Ligne 292 : | ||
apt-get install -t lenny-backports paquet | apt-get install -t lenny-backports paquet | ||
aptitude install -t lenny-backports paquet | aptitude install -t lenny-backports paquet | ||
Pour plus d'informations, reportez vous au [http://backports.org/dokuwiki/doku.php| site des backports] (en anglais) | Pour plus d'informations, reportez vous au [http://backports.org/dokuwiki/doku.php| site des backports] (en anglais) | ||
Ligne 302 : | Ligne 312 : | ||
# stable multimedia | # stable multimedia | ||
deb http:// | deb http://www.debian-multimedia.org stable main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org stable main non-free | ||
Ligne 315 : | Ligne 325 : | ||
# testing multimedia | # testing multimedia | ||
deb http:// | deb http://www.debian-multimedia.org testing main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org testing main non-free | ||
Ligne 324 : | Ligne 334 : | ||
# sid multimedia | # sid multimedia | ||
deb http:// | deb http://www.debian-multimedia.org sid main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org sid main non-free | ||
Accompagne de ce fichier preferences: | Accompagne de ce fichier preferences: | ||
Ligne 342 : | Ligne 353 : | ||
Si vous vous contentez de faire les mises a | Si vous vous contentez de faire les mises a jour et d'installer normalement des paquets, votre systeme sera exactement dans le meme etat que s'il n'avait que le depots stables sans preferences, y compris si vous essayez d'installer sans le savoir un paquet non present dans les depots stables mais present dans une autre branche. | ||
Par contre si vous voulez installer un paquet d'une autre branche, vous ne pourrez le faire que de façon volontaire. Avec ce preferences il faut vraiment le vouloir pour casser sa Debian stable. | Par contre si vous voulez installer un paquet d'une autre branche, vous ne pourrez le faire que de façon volontaire. Avec ce preferences il faut vraiment le vouloir pour casser sa Debian stable. | ||
Ligne 370 : | Ligne 381 : | ||
# lenny multimedia | # lenny multimedia | ||
deb http:// | deb http://www.debian-multimedia.org lenny main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org lenny main non-free | ||
Ligne 383 : | Ligne 394 : | ||
# squeeze multimedia | # squeeze multimedia | ||
deb http:// | deb http://www.debian-multimedia.org squeeze main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org squeeze main non-free | ||
Ligne 392 : | Ligne 403 : | ||
# sid multimedia | # sid multimedia | ||
deb http:// | deb http://www.debian-multimedia.org sid main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org sid main non-free | ||
Ligne 401 : | Ligne 412 : | ||
# experimental multimedia | # experimental multimedia | ||
deb http:// | deb http://www.debian-multimedia.org experimental main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org experimental main non-free | ||
Avec ce fichier preferences: | Avec ce fichier preferences: | ||
Ligne 467 : | Ligne 479 : | ||
# lenny multimedia | # lenny multimedia | ||
deb http:// | deb http://www.debian-multimedia.org lenny main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org lenny main non-free | ||
Ligne 480 : | Ligne 492 : | ||
# squeeze multimedia | # squeeze multimedia | ||
deb http:// | deb http://www.debian-multimedia.org squeeze main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org squeeze main non-free | ||
Ligne 489 : | Ligne 501 : | ||
# sid multimedia | # sid multimedia | ||
deb http:// | deb http://www.debian-multimedia.org sid main non-free | ||
#deb-src http:// | #deb-src http://www.debian-multimedia.org sid main non-free | ||
modifications