EDIT du 07/02/2011
ATTENTION, LES SOURCES.LIST CI-DESSOUS NE SONT PAS À JOUR.
[edit (fran.b)]
À LIRELe principe du fichier preferences consiste à donner des priorités à certains dépots. Cette priorités se calcule en fonction du numéro «Pin_priority» donné à chaque dépot. Le principe consiste en gros à classer les branches -par exemple perso> lenny > squeeze > sid- puis à à leur donner une priorité suivant la règle suivante:
Citation:
P > 1000
Cette priorité entraîne l'installation du paquet même s'il s'agit d'un retour en arrière.
990 < P <=1000
La version sera installée, même si elle n'appartient pas à la distribution par défaut ; mais elle ne sera pas installée si la version installée est plus récente.
500 < P <=990
La version sera installée, sauf s'il existe une version appartenant à la distribution par défaut ou si la version installée est plus récente.
100 < P <=500
La version sera installée, sauf s'il existe une version appartenant à une autre distribution ou si la version installée est plus récente.
0 < P <=100
La version sera installée si aucune version du paquet n'est installée.
P < 0
Cette priorité empêche l'installation de la version.
Dans notre exemple, on mettra donc une priorité maximale au dépot perso puis des priorités allant en décroissant sur les dépots lenny, squeeze et sid. Typiquement entre 501 et 990 pour lenny, et inférieur à 500 ou à 100 pour squeeze et sid.
Le problème se pose entre les dépots d'une même branche: lenny comporte le dépot classique, mais aussi le dépot securité, le dépot multimedia (Marillat), le dépot volatile (clamav), le dépot backport (j'en oublie?).
Deux options possibles: On controle tout en hiérarchisant les dépots au sein d'une même branche,
c'est la méthode retenue dans les fichiers preferences qui suivent ma remarque (donc
juste après les deux exemples ci dessous). On controle tout, cependant on peut être ammener à privilégier une version obsolète d'un paquet au sein d'une même branche (branche = lenny, ou squeeze, ou sid). Typiquement, un paquet peut être à la version n sur le dépot sécurité et n+1 sur le dépot classique.
Une autre méthode consiste à remarquer que si on ne fait pas de preferences, tous les dépots estampillés de la même branche recoivent tous la priorité 500 donc la même priorité. Si on désire ne pas se mouiller dans la hiérarchie des paquets d'une même branche, il suffit de donner la même priorité aux dépots d'une même branche. Cela donnerait le fichier preferences suivant pour l'ordre perso > stable > testing > unstable > experimental.
Code:
Package: *
Pin: release o=apt-build
Pin-Priority: 995
Package: *
Pin: release o=volatile.debian.org,a=stable,l=debian-volatile
Pin-Priority: 990
Package: *
Pin: release o=Debian,a=stable,l=Debian-Security
Pin-Priority: 990
Package: *
Pin: release o=Unofficial Multimedia Packages,a=stable,l=Unofficial Multimedia Packages
Pin-Priority: 990
Package: *
Pin: release o=Debian,a=stable,l=Debian
Pin-Priority: 990
Package: *
Pin: release o=Debian,a=testing,l=Debian-Security
Pin-Priority: 90
Package: *
Pin: release o=Unofficial Multimedia Packages,a=testing,l=Unofficial Multimedia Packages
Pin-Priority: 90
Package: *
Pin: release o=Debian,a=testing,l=Debian
Pin-Priority: 90
Package: *
Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages
Pin-Priority: 50
Package: *
Pin: release o=Debian,a=unstable,l=Debian
Pin-Priority: 50
Package: *
Pin: release o=Unofficial Multimedia Packages,a=experimental,l=Unofficial Multimedia Packages
Pin-Priority: 10
Package: *
Pin: release o=Debian,a=experimental,l=Debian
Pin-Priority: 10
Cela peut se nuancer, les paquets libavcodec51 sur multimedia sont incomatible avec vlc. On peut pour éviter tout souci diminuer la priorité de mulitimedia:
Code:
Package: *
Pin: release o=apt-build
Pin-Priority: 995
Package: *
Pin: release o=volatile.debian.org,a=stable,l=debian-volatile
Pin-Priority: 990
Package: *
Pin: release o=Debian,a=stable,l=Debian-Security
Pin-Priority: 990
Package: *
Pin: release o=Unofficial Multimedia Packages,a=stable,l=Unofficial Multimedia Packages
Pin-Priority: 980
Package: *
Pin: release o=Debian,a=stable,l=Debian
Pin-Priority: 990
Package: *
Pin: release o=Debian,a=testing,l=Debian-Security
Pin-Priority: 90
Package: *
Pin: release o=Unofficial Multimedia Packages,a=testing,l=Unofficial Multimedia Packages
Pin-Priority: 80
Package: *
Pin: release o=Debian,a=testing,l=Debian
Pin-Priority: 90
Package: *
Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages
Pin-Priority: 40
Package: *
Pin: release o=Debian,a=unstable,l=Debian
Pin-Priority: 50
Package: *
Pin: release o=Unofficial Multimedia Packages,a=experimental,l=Unofficial Multimedia Packages
Pin-Priority: 5
Package: *
Pin: release o=Debian,a=experimental,l=Debian
Pin-Priority: 10
Quoi qu'il en soit il faut donc faire attention, l'option -s permet de savoir quels paquets vont être installés, «apt-cache policy paquet» permet de savoir les différentes versions d'un paquet et «apt-cache policy» les différents dépots et preferences.
On peut également cibler des paquets avec le fichier preferences, cf
http://forum.debian-fr.org/viewtopic.php?f=8&t=13757Fin de la remarque.[/edit (fran.b)]
Voici en exemple un
un fichier preferences (à créer s'il n'existe pas) pour une "stable" qui s'applique au sources.list du post précèdent, permettant de taper indifféremment en stable, testing, sid, et experimental, avec en plus les dépots debian-multimedia.
- Dans l'ordre des release, les prefs privilègient ici la stable à savoir:
stable>testing>sid>experimental
- Dans l'ordre des categorie de depots de chaque release (quand ils existent):
security>volatile>standard>multimedia
/etc/apt/preferences a écrit:
Package: *
Pin: release o=apt-build
Pin-Priority: 989
Package: *
Pin: release o=volatile.debian.org,a=stable,l=debian-volatile
Pin-Priority: 988
Package: *
Pin: release o=Debian,a=stable,l=Debian-Security
Pin-Priority: 987
Package: *
Pin: release o=Unofficial Multimedia Packages,a=stable,l=Unofficial Multimedia Packages
Pin-Priority: 986
Package: *
Pin: release o=Debian,a=stable,l=Debian
Pin-Priority: 985
Package: *
Pin: release o=Debian,a=testing,l=Debian-Security
Pin-Priority: 99
Package: *
Pin: release o=Unofficial Multimedia Packages,a=testing,l=Unofficial Multimedia Packages
Pin-Priority: 98
Package: *
Pin: release o=Debian,a=testing,l=Debian
Pin-Priority: 97
Package: *
Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages
Pin-Priority: 96
Package: *
Pin: release o=Debian,a=unstable,l=Debian
Pin-Priority: 95
Package: *
Pin: release o=Unofficial Multimedia Packages,a=experimental,l=Unofficial Multimedia Packages
Pin-Priority: 94
Package: *
Pin: release o=Debian,a=experimental,l=Debian
Pin-Priority: 93