1 <!-- -*- mode: sgml; mode: fold -*- -->
2 <!-- translation of version 1.6 -->
3 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
5 <!ENTITY % aptent SYSTEM "apt.ent.fr">
14 <refentrytitle>apt_preferences</>
18 <!-- Man page title -->
20 <refname>apt_preferences</>
21 <refpurpose>Un fichier de contrôle, utilisé par APT et indiquant des préférences</>
24 <RefSect1><Title>Description</>
26 Le fichier d'APT, <filename>/etc/apt/preferences</>, peut être utilisé pour
27 choisir la version des paquets que l'on veut installer.
30 <para>Quand le fichier &sources-list; contient des références à plusieurs
31 distributions (par exemple, <literal>stable</literal> et
32 <literal>testing</literal>), plusieurs versions d'un paquet peuvent être
33 installées ; et, si ce fichier contient, pour une même distribution,
34 des références à plusieurs sites de téléchargement, il peut exister plusieurs
35 exemplaires de la même version d'un paquet. Apt affecte une priorité à
36 chaque exemplaire disponible. (Dans ce qui suit, un exemplaire est l'
37 exemplaire d'un paquet disponible selon le fichier &sources-list;.)
38 La commande <command>apt-get</command>, tenant compte des contraintes de
39 dépendance, installe l'exemplaire possédant la plus haute priorité. Si deux
40 exemplaires ont la même priorité, elle installe l'exemplaire le plus récent,
41 c'est-à-dire celui qui possède le numéro de version le plus haut.
44 <para>Le fichier des préférences annule les priorités assignées par défaut
45 aux exemplaires des paquets : ainsi l'utilisateur peut choisir
46 l'exemplaire qu'il veut installer.
49 <RefSect2><Title>Les priorités assignées par défaut</>
51 <para>Quand le fichier des préférences n'existe pas, ou quand aucune entrée
52 de ce fichier ne s'applique à un exemplaire précis, la priorité affectée à
53 cet exemplaire est la priorité de la distribution à laquelle il appartient.
54 On peut distinguer une distribution et lui donner une priorité plus haute
55 que celle des autres distributions : on l'appelle la distribution par
56 défaut ou « target release » et elle peut être définie sur la ligne
57 de commande de <command>apt-get</command> ou dans le fichier de configuration
58 d'APT, <filename>/etc/apt/apt.conf</filename>.
62 # Commande pour installer la version <literal/testing/ d'un <replaceable>paquet</replaceable>
63 <command>apt-get install -t testing <replaceable>paquet</replaceable></command>
67 # Utiliser le fichier de configuration pour rendre la distribution
68 <literal/stable/ la distribution par defaut (ou « target release »)
69 APT::Default-Release "stable";
73 <para>Quand une distribution par défaut a été indiquée, APT utilise
74 l'algorithme suivant pour déterminer la priorité des exemplaires d'un
79 <term>une priorité égale à 100</term>
80 <listitem><simpara>est affectée à l'exemplaire déjà installé (s'il existe).
84 <term>une priorité égale à 500</term>
85 <listitem><simpara>est affectée aux exemplaires qui ne sont pas installés et
86 qui n'appartiennent pas à la distribution par défaut.
90 <term>une priorité égale à 990</term>
91 <listitem><simpara>est affectée aux exemplaires qui ne sont pas installés et
92 qui appartiennent à la distribution par défaut.
98 <para>Quand aucune distribution par défaut n'a été indiquée, APT affecte
99 simplement une priorité égale à 100 à tout exemplaire installé d'un paquet
100 et une priorité égale à 500 à tout exemplaire non installé d'un paquet.
103 <para>Puis APT applique les règles suivantes pour déterminer l'exemplaire
104 du paquet qu'il faut installer (elles sont listées par ordre de priorité) :
107 <listitem><simpara>Ne jamais revenir en arrière, sauf si la priorité d'un
108 exemplaire disponible dépasse 1000. (« Revenir en arrière » signifie
109 installer une version moins récente que la version installée. Il
110 faut noter qu'aucune des priorités par défaut n'excède 1000 ; de telles
111 valeurs ne peuvent être définies que dans le fichier des préférences.)
112 </simpara></listitem>
113 <listitem><simpara>Installer l'exemplaire qui possède la priorité la plus
115 </simpara></listitem>
116 <listitem><simpara>Quand deux (ou plus) exemplaires ont la même priorité,
117 installer l'exemplaire le plus récent.
118 </simpara></listitem>
119 <listitem><simpara>Quand deux (ou plus) exemplaires ont le même numéro de
120 version, installer l'exemplaire dont la source est listée en premier dans
121 &sources-list;. (L'exemplaire installé, s'il existe, est toujours choisi
122 dans une telle comparaison, sauf si la commande
123 <command>apt-get --reinstall</command> est utilisée.)
124 </simpara></listitem>
128 <para>En général, l'exemplaire installé d'un paquet (priorité 100) n'est
129 pas aussi récent que l'un des exemplaires disponibles dans les sources
130 listées dans le fichier &sources-list; (priorité 500 ou 990). Et donc le
131 paquet sera mis à niveau avec la commande :
132 <command>apt-get install</command> ou <command>apt-get dist-upgrade</command>.
135 <para>L'exemplaire installé d'un paquet peut être - rarement -
136 <emphasis/plus/ récent que tout autre exemplaire disponible. Pas de retour
140 <para>Parfois, l'exemplaire installé d'un paquet est plus récent que la
141 version appartenant à la distribution par défaut, mais moins récent que
142 la version appartenant à une autre distribution. Un tel exemplaire sera mis
143 à niveau car au moins <emphasis/l'un/ des exemplaires disponibles possède
144 une plus haute priorité que la sienne.
149 <RefSect2><Title>Conséquences des préférences</>
151 <para>Le fichier des préférences permet à l'administrateur-système de
152 choisir ses priorités. Ce fichier est constitué d'une ou plusieurs entrées
153 séparées par des lignes blanches. Ces entrées peuvent avoir deux formes,
154 une forme particulière et une forme générale.
157 <simpara>La forme particulière affecte une priorité
158 (<emphasis>Pin-Priority</emphasis>) à un paquet précis, à une version précise
159 ou à un intervalle spécifiant plusieurs versions. Par exemple, l'entrée
160 suivante affecte une priorité haute à toutes les versions du paquet
161 <filename/perl/ dont le numéro de version commence par <literal/5.8/.
172 La forme générale affecte une priorité à toutes les versions d'un paquet dans
173 une distribution donnée (c'est-à-dire, à toutes les versions d'un paquet qui
174 sont listées dans un fichier <filename/Release/), ou à toutes les versions
175 d'un paquet provenant d'un site internet identifié par un nom pleinement
179 <simpara>Cette forme générale des entrées du fichier des préférences
180 s'applique seulement aux groupes de paquets. Par exemple, l'entrée suivante
181 affecte une priorité haute à tous les exemplaires disponibles dans le
191 <simpara>Attention ! le mot-clé utilisé ici, <literal/origin/, ne doit pas
192 être confondu avec l'« Origin: » d'une distribution indiqué dans
193 un fichier <filename/Release/. Ce qui suit l'étiquette « Origin: »
194 dans un fichier <filename/Release/ n'est pas l'adresse d'un site internet
195 mais le nom d'un auteur ou d'un vendeur, comme Debian ou Ximian.
198 <simpara>L'entrée suivante affecte une priorité basse à toutes les versions
199 d'un paquet appartenant à tout distribution dont le nom
200 d'« Archive » (<literal/a/) est <literal/unstable/.
205 Pin: release a=unstable
209 <simpara>L'entrée suivante affecte une priorité haute à toutes les versions
210 d'un paquet appartenant à toute distribution dont le nom
211 d'« Archive » (<literal/a/) est <literal/stable/ et dont le numéro
212 de « Version » (<literal/v/) est <literal/3.0/.
217 Pin: release a=stable, v=3.0
226 <RefSect2><Title>Comment APT interprète-t-il les priorités ?</Title>
228 <para>Les priorités (P) indiquées dans le fichier des préférences doivent
229 être des entiers positifs ou négatifs. Ils sont interprétés comme suit :
232 <varlistentry><term>P > 1000</term>
233 <listitem><simpara>Cette priorité entraîne l'installation du paquet même s'il
234 s'agit d'un retour en arrière.
235 </simpara></listitem>
237 <varlistentry><term>990 < P <=1000</term>
238 <listitem><simpara>L'exemplaire sera installé, même s'il n'appartient pas à
239 la distribution par défaut ; mais il ne sera pas installé si l'exemplaire
240 installé est plus récent.
241 </simpara></listitem>
243 <varlistentry><term>500 < P <=990</term>
244 <listitem><simpara>L'exemplaire sera installé, sauf s'il existe un exemplaire
245 appartenant à la distribution par défaut ou si la version installée est plus
247 </simpara></listitem>
249 <varlistentry><term>100 < P <=500</term>
250 <listitem><simpara>L'exemplaire sera installé, sauf s'il existe un exemplaire
251 appartenant à une autre distribution ou si la version installée est plus
253 </simpara></listitem>
254 <varlistentry><term>0 <= P <=100</term>
255 <listitem><simpara> L'exemplaire sera installé si aucun exemplaire du paquet
257 </simpara></listitem>
259 <varlistentry><term>P < 0</term>
260 <listitem><simpara>Cette priorité empêche l'installation de l'exemplaire.
261 </simpara></listitem>
266 <para>Si l'une des entrées de forme particulière correspond à l'exemplaire
267 disponible d'un paquet, cette entrée détermine la priorité de cet exemplaire.
268 Si deux entrées de forme particulière correspondent à l'exemplaire disponible
269 d'un paquet, la première entrée rencontrée détermine la priorité. Si deux
270 entrées de forme générale correspondent à l'exemplaire disponible d'un paquet,
271 la première entrée rencontrée détermine la priorité.
274 <para>Supposons par exemple que le fichier des préférences contienne les trois
275 entrées décrites plus haut :
287 Pin: release unstable
294 <listitem><simpara> La version la plus récente du paquet <literal/perl/ sera
295 installé pour autant que son numéro de version commence par <literal/5.8/.
296 Si l'<emphasis/une/ des versions 5.8* existe et si la version installée est
297 une version 5.9*, il y aura un retour en arrière.
298 </simpara></listitem>
299 <listitem><simpara>Les exemplaires des paquets (autres que <literal/perl/)
300 disponibles dans le site local ont priorité sur les autres exemplaires,
301 même ceux appartenant à la distribution par défaut.
302 </simpara></listitem>
303 <listitem><simpara> L'exemplaire d'un paquet dont l'origine n'est pas le site
304 local mais un site internet listé dans &sources-list; et qui appartient à une
305 distribution <literal/unstable/, ne sera installé que si aucun exemplaire
306 du paquet n'est déjà installé.
307 </simpara></listitem>
312 <RefSect2><Title>Détermination de la version des paquets et des propriétés des
313 distributions</Title>
315 <para>Chaque source listée dans le fichier &sources-list; doit fournir
316 les fichiers <filename>Packages</filename> et <filename>Release</filename>
317 qui décrivent les exemplaires des paquets disponibles à cet endroit.
320 <para>Le fichier <filename>Packages</filename> se trouve normalement dans le
322 <filename>.../dists/<replaceable>dist-name</replaceable>/<replaceable>component</replaceable>/<replaceable>arch</replaceable></filename>, par exemple,
323 <filename>.../dists/stable/main/binary-i386/Packages</filename>. Il consiste
324 en entrées composées de lignes, une pour chaque paquet disponible dans le
325 répertoire. Seules deux lignes des entrées sont pertinentes pour la
326 détermination des priorités :
329 <term>La ligne <literal/Package:/ </term>
330 <listitem><simpara>donne le nom du paquet</simpara></listitem>
333 <term>La ligne <literal/Version:/ </term>
334 <listitem><simpara>donne le numéro de version du paquet</simpara></listitem>
339 <para> Le fichier <filename>Release</filename> se trouve normalement dans le
341 <filename>.../dists/<replaceable>dist-name</replaceable></filename>, par exemple, <filename>.../dists/stable/Release</filename>, ou <filename>.../dists/woody/Release</filename>.
342 Il consiste en une seule entrée composée de plusieurs lignes qui s'applique à
343 <emphasis/tous/ les exemplaires des paquets situés dans les répertoires sous
344 le répertoire parent. Contrairement au fichier <filename/Packages/, presque
345 toutes les lignes du fichier <filename/Release/ sont pertinentes pour
346 déterminer les priorités :
349 <term>La ligne <literal/Archive:/ </term>
350 <listitem><simpara>nomme l'archive à laquelle appartiennent tous les
351 exemplaires des paquets situés dans les répertoires. Par exemple, la ligne
352 <literal/Archive: stable/ indique que tous les paquets dans les répertoires
353 situés sous le répertoire parent du fichier <filename/Release/ appartiennent
354 à l'archive <literal/stable/. Indiquer cette valeur dans le fichier des
355 préférences demanderait cette ligne :
359 Pin: release a=stable
365 <term>La ligne <literal/Version:/ </term>
366 <listitem><simpara>indique la version de la distribution. Par exemple, les
367 exemplaires des paquets dans les répertoires peuvent appartenir à la
368 distribution Debian GNU/Linux version 3.0. Il n'y a pas de numéro de version
369 pour les distributions testing et unstable car elles n'ont pas encore été
370 publiées. Indiquer cette valeur dans le fichier des préférences demanderait
376 Pin: release a=stable v=3.0
384 <term>La ligne <literal/Component:/</term>
385 <listitem><simpara>nomme un composant qui indique le type de licence associé
386 aux exemplaires situés dans les répertoires sous le fichier
387 <filename/Release/. Par exemple, la ligne <literal/Component: main/ indique
388 que tous les exemplaires dans les répertoires appartiennent au composant
389 <literal/main/, c'est-à-dire que leur licence est en accord avec les
390 Directives Debian pour le logiciel libre. Indiquer ce composant dans le
391 fichier des préférences demanderait cette ligne :
401 <term>La ligne <literal/Origin:/ </term>
402 <listitem><simpara>nomme le producteur des exemplaires des paquets situés
403 dans les répertoires sous le fichier <filename/Release/. En général, c'est
404 <literal/Debian/. Indiquer cette origine dans le fichier des préférences
405 demanderait cette ligne :
409 Pin: release o=Debian
415 <term>La ligne <literal/Label:/ </term>
416 <listitem><simpara>semble redondante. En général, c'est
417 <literal/Debian/. Indiquer cette origine dans le fichier des préférences
418 demanderait cette ligne :
422 Pin: release l=Debian
429 <para>Tous les fichiers <filename>Packages</filename> et
430 <filename>Release</filename> récupérés dans des sources listées par le
431 fichier &sources-list; sont conservés dans le répertoire
432 <filename>/var/lib/apt/lists</filename> ou dans le fichier spécifié par la
433 variable <literal/Dir::State::Lists/ dans le fichier <filename/apt.conf/.
434 Par exemple, le fichier
435 <filename>debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release</filename> contient le fichier <filename>Release</filename> du site
436 <literal/debian.lcs.mit.edu/, architecture <literal/binary-i386/ et
437 composant <literal/contrib/ de la distribution <literal/unstable/.
442 <RefSect2><Title>Lignes facultatives dans le fichier des préférences</Title>
444 <para>Toute entrée du fichier des préférences peut commencer par une ou
445 plusieurs lignes contenant le mot <literal/Explanation:/. Cela permet de
449 <para>La ligne <literal/Pin-Priority:/ d'une entrée est facultative. Si elle
450 n'existe pas, APT affecte une priorité inférieure de 1 à la valeur spécifiée
451 sur une ligne commençant par <literal/Pin-Priority: release .../.
456 <RefSect1><Title>Exemples</>
457 <RefSect2><Title>Comment suivre Stable ?</Title>
459 <para>Le fichier des préférences suivant affecte une priorité plus haute que
460 la priorité par défaut (500) à tous les exemplaires appartenant à la
461 distribution <literal/stable/ et une priorité prohibitivement basse à tous
462 les exemplaires appartenant à d'autres distributions <literal/Debian/.
466 Pin: release a=stable
469 Explanation: Ne pas installer des exemplaires d'origine Debian
470 Explanation: sauf ceux de la distribution stable
472 Pin: release o=Debian
477 <para>Avec le fichier des préférences ci-dessus et un fichier &sources-list;
478 adéquat, les commandes suivantes utiliseront les versions les plus récentes
479 de <literal/stable/ pour faire la mise à niveau :
482 apt-get install <replaceable>paquet</replaceable>
488 <para>La commande suivante utilisera la version la plus récente de la
489 distribution <literal/testing/ pour mettre à niveau le paquet spécifié ;
490 cependant les mises à niveau ultérieures ne se feront pas automatiquement.
493 apt-get install <replaceable>paquet</replaceable>/testing
497 <RefSect2><Title>Comment suivre Testing ?</Title>
499 <para>Le fichier des préférences suivant affecte une priorité haute aux
500 versions des paquets appartenant à la distribution <literal/testing/, une
501 priorité moindre aux versions appartenant à la distribution <literal/unstable/
502 et une priorité prohibitivement basse aux versions appartenant à d'autres
503 distributions <literal/Debian/.
507 Pin: release a=testing
511 Pin: release a=unstable
515 Pin: release o=Debian
520 <para>Avec le fichier des préférences ci-dessus, les commandes suivantes
521 utiliseront les versions les plus récentes de <literal/testing/ pour faire
522 la mise à niveau :
525 apt-get install <replaceable>paquet</replaceable>
531 <para>La commande suivante utilisera la version la plus récente de la
532 distribution <literal/unstable/ pour mettre à niveau le paquet spécifié ;
533 Par la suite, <command>apt-get dist-upgrade</command> et les autres
534 commandes <emphasis/utiliseront/ les versions les plus récentes de
535 <literal/unstable/ pour mettre à niveau le paquet.
538 apt-get install <replaceable>paquet</replaceable>/unstable
545 <RefSect1><Title>See Also</>
547 &apt-get; &apt-cache; &apt-conf; &sources-list;