%aptent; ]> &apt-docinfo; apt_preferences 5 apt_preferences Un fichier de contrôle, utilisé par APT, indiquant des préférences Description</> <para> Le fichier des préférences contrôle différents aspects du système APT. Il est conçu pour être modifiable par l'utilisateur et manipulable de façon logicielle. Il comprend des enregistrements formés sur le modèle du fichier <filename/status/ de Dpkg : des sections séparées par des espaces et des lignes commençant par une étiquette suivie d'un « : ». Il se trouve dans <filename>/etc/apt/preferences</>. </RefSect1> <RefSect1><Title>Questions de version</> <para> L'un des buts de ce fichier est de permettre à l'utilisateur de choisir quelle version d'un paquet il veut installer. On peut faire ce choix de plusieurs façons mais il est basé sur trois critères : la version, l'édition et l'origine. <para> Choisir la version peut se faire avec une recherche de correspondance sur une chaîne exacte ou bien sur une chaîne préfixée. Le format est : <literal/2.1.2/ pour la première et <literal/2.2*/ pour la seconde. L'utilisation d'un préfixe permet d'ignorer le <literal/r/ du système d'ordonnancement des éditions (<literal/2.1r*/), ou bien d'ignorer les révisions propres à Debian (<literal/1.1-*/). Quand on compare des versions en se servant d'un préfixe, la version possédant le numéro le plus élevé est toujours choisie. <para> Choisir une édition de la distribution est plus compliqué et possède trois formes. Le but principal du choix d'une édition est d'identifier un ensemble de paquets qui corresponde à un vendeur particulier ou à une édition de la distribution (p.ex. Debian 2.1). Les deux premières formes sont des raccourcis pour une utilisation rapide en ligne de commande. Si le premier caractère de la chaîne est un chiffre, c'est une recherche fondée sur la version d'une édition ; sinon, c'est une recherche sur le nom d'une édition. Quand la chaîne comporte des signes égal, c'est une recherche fondée sur une description complète de l'édition ; cette chaîne est une liste de clés (une seule lettre) suivies d'un mot et séparées par une virgule. Exemples : <informalexample><programlisting> v=2.1*,o=Debian,c=main l=Debian a=stable </programlisting></informalexample> <para> Ces recherches utilisent des données prises dans les fichiers <filename/Release/ récupérés par APT pendant une mise à jour. Voici les clés disponibles : <VariableList> <VarListEntry><term>a= Archive</term> <ListItem><Para> C'est le nom habituel donné à nos archives, comme <literal/stable/ ou <literal/unstable/. Le nom spécial <literal/now/ désigne l'ensemble des paquets installés. </VarListEntry> <VarListEntry><term>c= Composant</term> <ListItem><Para> Indique un sous-composant de l'archive, tel que <literal/main/, <literal/contrib/, etc. Quand il n'y a pas de composant dans telle archive, on peut l'omettre. </VarListEntry> <VarListEntry><term>v= Version</term> <ListItem><Para> C'est la chaîne représentant la version ; elle possède les mêmes caractéristiques que celle du fichier <filename/Packages/. C'est le niveau édition de l'archive. Les numéros d'une édition classique de la distribution Debian ressemblent à <literal/2.1r2/ où le r désigne une édition (release) de la distribution 2.1. Les nouvelles éditions sont limitées à des mises à jour concernant la sécurité. </VarListEntry> <VarListEntry><term>o= Origine</term> <ListItem><Para> Ce terme indique qui a fourni l'archive. Pour Debian, c'est <literal/Debian/. Les autres fournisseurs peuvent utiliser leur propre nom. </VarListEntry> <VarListEntry><term><term>l= Label</term> <ListItem><Para> Cela donne le nom général de la distribution. Pour Debian, c'est <literal/Debian/. Pour des distributions dérivées, ce terme doit être leur propre nom. </VarListEntry> </VariableList> <para> La dernière méthode est le choix de l'origine. C'est simplement le nom du site d'où proviennent les paquets. Une chaîne vide indique un URI de fichier. <para> Le choix d'une version, et en particulier les deux dernières méthodes, concerne plusieurs parties d'APT, pas seulement le fichier préférences. </RefSect1> <RefSect1><Title>Règles pour le choix d'une version</> <para> APT conserve une liste de toutes les versions disponibles de tous les paquets. Quand on indique plusieurs éditions ou vendeurs dans le fichier &sources-list;, tous ces éléments sont disponibles. APT choisit par défaut la version la plus récente parmi toutes ces sources automatiques. Quelques sources sont étiquetées Non Automatique, p.ex. <filename>project/experimental</> -- elles sont mises en bas de la pile de sélection. <para> Pour décider quelle version utiliser, APT affecte une priorité à toutes les versions disponibles d'un paquet. Puis il fait deux choses. Premièrement : il choisit, parmi les versions plus récentes que la version installée, la version qui possède la plus haute priorité ; ensuite il choisit, parmi les versions plus anciennes que la version installée, celle qui possède la plus haute priorité. Deuxièmement : si les versions plus anciennes ont une priorité supérieure à 1000, il les compare avec la priorité que possède l'ensemble de mise à niveau : la plus grande est choisie. Autrement, les versions provoquant une régression sont ignorées et il choisit la plus grande priorité de l'ensemble de mise à niveau. <para> On peut penser le système de priorité en termes de strates : <VariableList> <VarListEntry><term>1000 et au-dessus</term> <ListItem><Para> Priorités permettant la régression </VarListEntry> <VarListEntry><term>1000</term> <ListItem><Para> La barrière pour empêcher la régression. </VarListEntry> <VarListEntry><term>de 100 à 1000</term> <ListItem><Para> Priorités standards. 990 est la priorité définie par l'option <option/--target-release / du programme &apt-get;. 989 est le début des priorités automatiques et 500 la priorité par défaut des fichiers d'un paquet. </VarListEntry> <VarListEntry><term>100</term> <ListItem><Para> Priorité de la version actuellement installée. </VarListEntry> <VarListEntry><term>de 0 à 100</term> <ListItem><Para> Priorités non automatiques. On s'en sert uniquement si le paquet n'est pas installé et s'il n'y a pas d'autre version disponible. </VarListEntry> <VarListEntry><term>inférieur à 0</term> <ListItem><Para> Priorité pour une version qui ne sera jamais sélectionnée. </VarListEntry> </VariableList> <para> Une priorité supérieure à 1000 donnée à une étiquette (pin) autorise une régression vers cette version. <para> On peut accrocher une étiquette à chaque paquet et chaque fichier <filename/Packages/ possède une priorité pour tous les paquets. La plus haute priorité affectée à un paquet est celle qui est utilisée. <para> Une étiquette de paquet est de cette forme : <informalexample><programlisting> Package: apt Pin: version 0.4.0 Pin-Priority: 1001 </programlisting></informalexample> La première ligne indique le paquet, la seconde donne le nom de l'étiquette et la dernière la priorité pour cette étiquette. Le premier mot du nom de l'étiquette peut être : version, release ou origin ; le reste du champ est décrit plus haut dans la section « Règles pour le choix d'une version ». <para> Une étiquette par défaut représente comment sont définies les priorités des fichiers d'un paquet. On peut spécifier autant d'étiquette par défaut qu'on veut ; la première correspondant au défaut sélectionne la priorité pour les fichiers d'un paquet. Seuls « release » et « origin » peuvent être utilisés dans le nom de l'étiquette puisqu'ils correspondent aux fichiers <filename/Packages/. <informalexample><programlisting> Package: * Pin: release v=2.1* Pin-Priority: 998 </programlisting></informalexample> <para> Quand le champ Pin-Priority manque, la priorité est par défaut de 989 dans les deux cas. <RefSect2><title>Effets notables</> <para> À cause de la barrière empêchant les régressions (priorité 1000), il est possible qu'une version possédant une priorité inférieure soit choisie si une version possédant une priorité supérieure provoque une régression. Par exemple, le paquet foo possède les versions <literal/1.2/, <literal/1.1/ et <literal/1.0/ ; <literal/1.1/ est la version installée ; les priorités de chaque version sont : 900, 100 et 950 respectivement : la version <literal/1.2/ sera installée. <para> Dans la pratique, c'est ce qu'on veut ! Un utilisateur utilisera une étiquette par défaut pour rendre la distribution « stable » la distribution par défaut ; il utilisera ensuite l'option <option/--target-dist/ avec &apt-get; pour choisir de nouvelles versions dans « unstable ». Les paquets mis à niveau avec « unstable » suivront les versions disponibles dans « unstable » puisque les versions de « stable » sont maintenant passées sous la barrière empêchant la régression. <para> Si on ne le veut pas, on doit utiliser une étiquette par défaut qui donne à « unstable » une priorité inférieure à 100. <para> Ceux qui utilisent des suppléments venant de tiers comme Helix GNOME peuvent se servir de ce procédé pour obtenir des paquets Helix ; ils peuvent forcer l'utilisation des paquets Debian en définissant la priorité de cette source suffisamment haut. On peut même réaliser une régression massive d'un ensemble de paquets à un autre en utilisant une priorité supérieure à 1000. </RefSect2> </RefSect1> <RefSect1><Title>Voir aussi</> <para> &apt-cache; &apt-conf; </RefSect1> &manbugs; &manauthor; &traducteur; </refentry>