Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:obsolete:fichier-preferences [19/07/2011 21:39] darien |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | mise à jour - 14/04/2011====== PREFERENCES ====== | ||
- | Le fichier ''preferences'' permet de gérer plusieurs [[manuel:depots | Dépôts]] de [[manuel:branches_debian | Branches]] différentes inscrit dans le [[manuel:sources.list]]. | ||
- | |||
- | ===== Créer le fichier PREFERENCES ===== | ||
- | |||
- | Le fichier //Preferences// n'est pas généré automatiquement, nous devons le créer ainsi : | ||
- | |||
- | # nano /etc/apt/preferences | ||
- | |||
- | Puis le remplir selon les indications données plus loin dans ce tuto... | ||
- | |||
- | ===== Important : ===== | ||
- | |||
- | Après avoir **créé ou modifié** votre fichier **Preferences**, la première chose à faire est dans un terminal root : | ||
- | <code bash>aptitude update</code> | ||
- | ou | ||
- | <code bash>apt-get update</code> | ||
- | |||
- | Suivi immédiatement de : | ||
- | |||
- | $ apt-cache policy | ||
- | |||
- | |||
- | |||
- | |||
- | Cette dernière commande vous permettra de vérifier si les priorités de votre fichier **Preferences** sont bien prises en compte par **apt** et correspondent à votre choix.<note warning>Dans le cas contraire, vous risquez d'avoir une **MAUVAISE SURPRISE** après avoir utilisé les commandes de mises à jour et d'installation habituelles.</note> | ||
- | |||
- | ===== Prérequis Débutant : ===== | ||
- | |||
- | * [[manuel:ligne_de_commande_et_commandes#gnu_linux-_les_commandes | COMMANDE LINUX DE BASE]] DEBUTANT Ecrire et commander directement à son PC | ||
- | * [[manuel:branches_debian | Les Branches Debian - Détail]] DEBUTANT Pour connaître l'utilité de chaque **branche**... | ||
- | * [[manuel:sources.list | sources.list - Détail]] DEBUTANT AVERTI Pour concevoir un **sources.list** au petit poil ! | ||
- | |||
- | ===== A savoir : ===== | ||
- | |||
- | Le fichier /etc/apt/preferences est un fichier | ||
- | qui donne un ordre de priorité aux dépôts. | ||
- | |||
- | L'utilisation d'un fichier **Preferences** permet : | ||
- | - d'installer des paquets d'une branche différente (supérieure ou inférieure...) | ||
- | - non disponibles dans la branche principale installée en priorité | ||
- | - tout en réglant les problèmes de dépendances qui ne manquent de survenir ! | ||
- | |||
- | |||
- | |||
- | ===== Le fichier Preferences, en pratique : ===== | ||
- | |||
- | Toutes les priorités des dépôts sont de : | ||
- | 500 qui est la valeur par défaut. | ||
- | |||
- | Ce qui revient à dire : | ||
- | |||
- | au cas d'un sources.list complété de branches diffférentes, sans le fichier Preferences rédigé, on utilisera prioritairement, | ||
- | |||
- | la version supérieure d'un paquet, | ||
- | |||
- | en général dans la branche supérieure de notre fichier sources.list. | ||
- | |||
- | On peut vérifier les priorités en utilisant la ligne de commande : | ||
- | $ apt-cache policy | ||
- | |||
- | ==== Exception les dépôts backports et experimental ==== | ||
- | |||
- | === le dépôt backports === | ||
- | |||
- | (//le dépôt backports pour la branche **stable** actuellement **Squeeze**//) | ||
- | |||
- | Il est important de noter que le dépôt **squeeze-backports** __ne fait pas partie de cette règle__, il représente un cas à part. Son niveau de preferences est de 100 par défaut ! | ||
- | |||
- | On l'utilise pour : | ||
- | installer des versions supérieures d'applications rajoutées | ||
- | dans la branche stable après sa création. | ||
- | |||
- | C'est du cas par cas. | ||
- | |||
- | === Le dépôt experimental === | ||
- | |||
- | Idem, pour le dépôt experimental qui a un niveau de preferences de 1 par defaut. | ||
- | |||
- | ===== Définition des priorités (P) ===== | ||
- | |||
- | Avant de parler des valeurs à donner aux différentes préférences (P), il est bon de rappeler ce qu'elles représentent exactement. | ||
- | |||
- | P > 1000 | ||
- | Le paquet sera installé même si APT est forcé d'installer une version plus ancienne que la version actuelle | ||
- | | ||
- | 990 < P <=1000 | ||
- | Le paquet sera installé sauf si une version plus récente est déjà installée. | ||
- | | ||
- | 500 < P <=990 | ||
- | Le paquet ne sera installé qu'à défaut de version plus récente installée ou disponible dans la distribution cible | ||
- | | ||
- | 100 < P <=500 | ||
- | Le paquet ne sera installé que s'il n'en existe aucune version plus récente, installée ou disponible, | ||
- | dans une autre branche | ||
- | | ||
- | 0 < P <=100 | ||
- | Le paquet ne sera installé que si aucune autre version du paquet n'est installée | ||
- | | ||
- | P < 0 | ||
- | Le paquet ne sera jamais installé | ||
- | |||
- | ===== Lors de la création d'un fichier preferences il est souhaitable de respecter certaines règles. ===== | ||
- | ==== Nommer les branches par leur nom **commun** ou leur nom **release** ==== | ||
- | |||
- | Je viens de me rendre compte, d'ailleurs cela doit être récent, que l'on peut mettre le nom //release// de la branche, par exemple pour une ligne dans le sources.list concernant squeeze. | ||
- | |||
- | deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free | ||
- | |||
- | apt-cache policy donne une nouvelle option (n=squeeze) | ||
- | |||
- | 900 http://ftp.fr.debian.org/debian/ squeeze/main Packages | ||
- | release v=6.0.2.1,o=Debian,a=stable,n=squeeze,l=Debian,c=main | ||
- | origin ftp.fr.debian.org | ||
- | |||
- | donc on peut rajouter dans le fichier **preferences** ce style d'interprétation : | ||
- | Package: * | ||
- | Pin: release a=stable | ||
- | Pin-priority: 900 | ||
- | Les "man" d'apt.conf et apt_preferences viennent d'être modifiés, et je constate que l'on peut mettre encore une autre description dans le fichier preferences on peut mettre : | ||
- | Package: * | ||
- | Pin: release n=squeeze | ||
- | Pin-priority: 900 | ||
- | Idem bien sûr pour toutes les branches //testing/wheezy// ou //unstable/sid//. | ||
- | |||
- | |||
- | ==== Garder des priorités identiques pour les dépôts d'une même branche ==== | ||
- | |||
- | C'est le comportement //__par défaut__// quand on n'a que les dépôts de la branche suivie, sans fichier **Preferences**. | ||
- | |||
- | <note warning>Tout manquement à cette règle casse la comportement par défaut et peut générer des résultats très dommageables car non prévus par les développeurs Debian.</note> | ||
- | |||
- | (Excepté les dépôts **backports**. Voir : [[manuel:depots#le_depot_backports | BACKPORTS]]) | ||
- | |||
- | |||
- | ==== Attribuer une priorité comprise entre 500 et 989 ==== | ||
- | |||
- | pour la branche suivie et la/les branche(s) comportant des paquets aux versions égales ou inférieures à la branche suivie. | ||
- | |||
- | === Pourquoi une valeur plus petite que 990 ? === | ||
- | |||
- | Parce que lorsque l'on utilise l'option **-t** ainsi : | ||
- | install -t <branche> <le_nom_du_paquet> | ||
- | pour installer des paquets d'une branche autre que celle suivie, celle-ci devient la branche par défaut (APT::Default-Release "branche") avec une priorité __temporaire__ de **990**.\\ | ||
- | Donc, pour //la branche prioritaire// du fichier **preferences** | ||
- | avoir une priorité égale ou supérieure à 990 perturbe l'option "-t" | ||
- | |||
- | ==== Illustration de l'option -t ==== | ||
- | |||
- | Supposons que je veuille installer le paquet **XYZ** qui se trouve dans une autre branche du //sources.list// que celle utilisée en priorité. | ||
- | |||
- | Si j'utilise le slash "**/**" ainsi : | ||
- | <code># aptitude install XYZ/<branche></code> | ||
- | ou | ||
- | # apt-get install XYZ/<branche> | ||
- | |||
- | Cela installe le paquet //XYZ// de la branche donnée en argument. | ||
- | |||
- | Si je fais maintenant un : | ||
- | <code># aptitude install XYZ -t <branche></code> | ||
- | ou | ||
- | # apt-get install XYZ -t <branche> | ||
- | |||
- | Cela installe le paquet XYZ tout en définissant __temporairement__ la branche donnée en argument comme branche par défaut (priorité de 990). | ||
- | |||
- | ==== Concrètement : ==== | ||
- | |||
- | * avec l'option -t,\\ | ||
- | les éventuelles __dépendances du paquet **XYZ**__ seront facilement | ||
- | accessibles car elles auront, comme XYZ, une priorité temporaire de **990**.\\ | ||
- | * Alors qu'avec /,\\ | ||
- | elles gardent la priorité définie dans le fichier /etc/apt/preferences ou celle par défaut (500). | ||
- | |||
- | Après cette commande, nous sommes toujours dans la branche mentionnée par l'option -t !\\ | ||
- | Il nous faut : | ||
- | fermer le terminal root pour revenir dans la branche prioritaire du fichier preferences. | ||
- | |||
- | ==== Suivi des mises à jour / option -t ==== | ||
- | |||
- | Si nous voulons suivre une application installée avec l'option -t (//et les dépendances qui vont avec//...)\\, nous devons écrire une entrée dans le fichier preferences (voir exemple ci-dessous). | ||
- | |||
- | **Par exemple** : | ||
- | |||
- | Pour un paquet **XYZ** de la branche **unstable** nous ajouterions au fichier //preferences// ces lignes : | ||
- | Package: XYZ | ||
- | Pin: release a=unstable | ||
- | Pin-Priority: 400 | ||
- | |||
- | === Nota : === | ||
- | |||
- | Par contre, __même de priorité inférieure__, l'installation d'une version d'un paquet n'est pas rétrogradée par les mises à jour. | ||
- | |||
- | //Merci au captnfab pour cette précision.// :-) | ||
- | |||
- | ==== Priorités comprises entre 1 et 99 ==== | ||
- | |||
- | Pour la branche comportant des paquets de versions supérieures aux versions de la branche suivie principalement\\ | ||
- | il est recommandé d'attribuer une valeur de preferences entre 1 et 99. | ||
- | Ceci permet : | ||
- | - d'installer les paquets à la demande | ||
- | - ou à apt-get de le faire seulement en cas de besoins | ||
- | sans pour autant « suivre » les paquets installés à partir de ces dépôts. | ||
- | |||
- | ==== Si on veut « suivre » les mises à jour des paquets ==== | ||
- | |||
- | C'est-à-dire qu'ils se mettent à jours automatiquement, | ||
- | il est normalement suffisant d'attribuer | ||
- | une priorité comprise entre 100 et 499 à ces branches. | ||
- | S'il est envisageable de le faire individuellement, pour un paquet en particulier, | ||
- | il n'est pas prudent de le faire pour un fichier preferences | ||
- | générique en raison des dépendances. | ||
- | |||
- | Autrement dit, on met une entrée dans le fichier **Preferences** | ||
- | |||
- | * pour le paquet donné dont on veut avoir les mises à jour | ||
- | |||
- | et non | ||
- | |||
- | * pour toute la branche. | ||
- | |||
- | |||
- | ==== D'un point de vue pratique, ==== | ||
- | (//en débat pour le pratique ???//) | ||
- | |||
- | Il est préférable d'utiliser des chiffres ronds (900, 800, 90...).\\ | ||
- | Cela permet d'adapter facilement le fichier **Preferences** en fonction de ses besoins (ajout de dépôts, par exemple) | ||
- | - sans avoir à décaler toutes les autres entrées dans le fichier, et | ||
- | - de faire la différence entre chaque priorité des dépôts //d'un simple coup d'oeil//. | ||
- | |||
- | ===== À consulter : ===== | ||
- | |||
- | $ man apt_preferences | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ====== Voir maintenant : ====== | ||
- | |||
- | * [[manuel:depots#le_depot_backports]] DEBUTANT AVERTI **!** | ||
- | * [[manuel:configuration:pinning | Le Pinning dans ses oeuvres !]] EXPERT **!** De l'utilisation raisonnée du fichier Preferences avec de multiples branches installées | ||
- | |||
- | :-P:-P:-P |