logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Ceci est une ancienne révision du document !


mise à jour - 11/05/2013

Le fichier /etc/apt/preferences

Le fichier preferences permet de gérer plusieurs Dépôts de Branches différentes inscrit dans le sources.list.

Création du fichier

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 :

aptitude update

ou

apt-get update

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.

Dans le cas contraire, vous risquez d'avoir une MAUVAISE SURPRISE après avoir utilisé les commandes de mises à jour et d'installation habituelles.

Prérequis Débutant :

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 :

  1. d'installer des paquets d'une branche différente (supérieure ou inférieure…)
  2. non disponibles dans la branche principale installée en priorité
  3. 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 Wheezy)

Il est important de noter que le dépôt wheezy-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 wheezy.

  deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free

apt-cache policy donne une nouvelle option (n=wheezy)

  900 http://ftp.fr.debian.org/debian/ wheezy/main Packages
       release v=6.0.2.1,o=Debian,a=stable,n=wheezy,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=wheezy
 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.

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.

(Excepté les dépôts backports. Voir : BACKPORTS)

Limiter des priorités

testé par smolski le 23/11/2012 à 15h37

Ici, nous allons limiter les sources multimedia de wheezy par le fichier créé ici /etc/apt/preferences en y écrivant : [code]Package: * Pin: release -o=Unofficial Multimedia Packages,a=stable,l=Unofficial Multimedia Packages Pin-Priority: -10[/code]

Le :

apt-cache priority

permet d'en avoir la confirmation. ;-)

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 :

# aptitude install XYZ/<branche>

ou

# apt-get install XYZ/<branche>

Cela installe le paquet XYZ de la branche donnée en argument.

Si je fais maintenant un :

# aptitude install XYZ -t <branche>

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 :

  1. d'installer les paquets à la demande
  2. 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)

  1. sans avoir à décaler toutes les autres entrées dans le fichier, et
  2. de faire la différence entre chaque priorité des dépôts d'un simple coup d'oeil.

À consulter :

 $ man apt_preferences

Voir maintenant :

:-P:-P:-P

doc/obsolete/fichier-preferences.1368380478.txt.gz · Dernière modification: 12/05/2013 19:41 par bract

Pied de page des forums

Propulsé par FluxBB