<!-- -*- mode: sgml; mode: fold -*- -->
<!-- translation of version 1.6 -->
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [

<!ENTITY % aptent SYSTEM "apt.ent.fr">
%aptent;

]>

<refentry lang=fr>
 &apt-docinfo;

 <refmeta>
   <refentrytitle>apt_preferences</>
   <manvolnum>5</>
 </refmeta>

 <!-- Man page title -->
 <refnamediv>
    <refname>apt_preferences</>
    <refpurpose>Un fichier de contr�le, utilis� par APT et indiquant des pr�f�rences</>
 </refnamediv>

<RefSect1><Title>Description</>
<para>
Le fichier d'APT, <filename>/etc/apt/preferences</>, peut �tre utilis� pour
choisir la version des paquets que l'on veut installer.
</para>

<para>Quand le fichier &sources-list; contient des r�f�rences � plusieurs
distributions (par exemple, <literal>stable</literal> et 
<literal>testing</literal>), plusieurs versions d'un paquet peuvent �tre
install�es&nbsp;; et, si ce fichier contient, pour une m�me distribution, 
des r�f�rences � plusieurs sites de t�l�chargement, il peut exister plusieurs
exemplaires de la m�me version d'un paquet. Apt affecte une priorit� � 
chaque exemplaire disponible. (Dans ce qui suit, un exemplaire est l'
exemplaire d'un paquet disponible selon le fichier &sources-list;.)
La commande <command>apt-get</command>, tenant compte des contraintes de
d�pendance, installe l'exemplaire poss�dant la plus haute priorit�. Si deux
exemplaires ont la m�me priorit�, elle installe l'exemplaire le plus r�cent,
c'est-�-dire celui qui poss�de le num�ro de version le plus haut.
</para>

<para>Le fichier des pr�f�rences annule les priorit�s assign�es par d�faut
aux exemplaires des paquets&nbsp;: ainsi l'utilisateur peut choisir
l'exemplaire qu'il veut installer.
</para>

<RefSect2><Title>Les priorit�s assign�es par d�faut</>

<para>Quand le fichier des pr�f�rences n'existe pas, ou quand aucune entr�e 
de ce fichier ne s'applique � un exemplaire pr�cis, la priorit� affect�e �
cet exemplaire est la priorit� de la distribution � laquelle il appartient.
On peut distinguer une distribution et lui donner une priorit� plus haute
que celle des autres distributions&nbsp;: on l'appelle la distribution par
d�faut ou �&nbsp;target release&nbsp;� et elle peut �tre d�finie sur la ligne 
de commande de <command>apt-get</command> ou dans le fichier de configuration 
d'APT, <filename>/etc/apt/apt.conf</filename>.
Par exemple&nbsp;:

<programlisting>
# Commande pour installer la version <literal/testing/ d'un <replaceable>paquet</replaceable>
<command>apt-get install -t testing <replaceable>paquet</replaceable></command>
</programlisting>

<programlisting>
# Utiliser le fichier de configuration pour rendre la distribution 
<literal/stable/ la distribution par defaut (ou �&nbsp;target release&nbsp;�) 
APT::Default-Release "stable";
</programlisting>
</para>

<para>Quand une distribution par d�faut a �t� indiqu�e, APT utilise 
l'algorithme suivant pour d�terminer la priorit� des exemplaires d'un
paquet&nbsp;:

<variablelist>
<varlistentry>
<term>une priorit� �gale � 100</term>
<listitem><simpara>est affect�e � l'exemplaire d�j� install� (s'il existe).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term>une priorit� �gale � 500</term>
<listitem><simpara>est affect�e aux exemplaires qui ne sont pas install�s et 
qui n'appartiennent pas � la distribution par d�faut.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term>une priorit� �gale � 990</term>
<listitem><simpara>est affect�e aux exemplaires qui ne sont pas install�s et 
qui appartiennent � la distribution par d�faut.
</simpara></listitem>
</varlistentry>
</variablelist>
</para>

<para>Quand aucune distribution par d�faut n'a �t� indiqu�e, APT affecte
simplement une priorit� �gale � 100 � tout exemplaire install� d'un paquet 
et une priorit� �gale � 500 � tout exemplaire non install� d'un paquet.
</para>

<para>Puis APT applique les r�gles suivantes pour d�terminer l'exemplaire
du paquet qu'il faut installer (elles sont list�es par ordre de priorit�)&nbsp;: 

<itemizedlist>
<listitem><simpara>Ne jamais revenir en arri�re, sauf si la priorit� d'un
exemplaire disponible d�passe 1000. (�&nbsp;Revenir en arri�re&nbsp;� signifie
installer une version moins r�cente que la version install�e. Il
faut noter qu'aucune des priorit�s par d�faut n'exc�de 1000&nbsp;; de telles
valeurs ne peuvent �tre d�finies que dans le fichier des pr�f�rences.)
</simpara></listitem>
<listitem><simpara>Installer l'exemplaire qui poss�de la priorit� la plus 
haute.
</simpara></listitem>
<listitem><simpara>Quand deux (ou plus) exemplaires ont la m�me priorit�, 
installer l'exemplaire le plus r�cent.
</simpara></listitem>
<listitem><simpara>Quand deux (ou plus) exemplaires ont le m�me num�ro de 
version, installer l'exemplaire dont la source est list�e en premier dans
&sources-list;. (L'exemplaire install�, s'il existe, est toujours choisi
dans une telle comparaison, sauf si la commande 
<command>apt-get --reinstall</command> est utilis�e.)
</simpara></listitem>
</itemizedlist>
</para>

<para>En g�n�ral, l'exemplaire install� d'un paquet (priorit� 100) n'est
pas aussi r�cent que l'un des exemplaires disponibles dans les sources
list�es dans le fichier &sources-list; (priorit� 500 ou 990). Et donc le
paquet sera mis � niveau avec la commande&nbsp;:
<command>apt-get install</command> ou <command>apt-get dist-upgrade</command>.
</para>

<para>L'exemplaire install� d'un paquet peut �tre - rarement - 
<emphasis/plus/ r�cent que tout autre exemplaire disponible. Pas de retour 
en arri�re.
</para>

<para>Parfois, l'exemplaire install� d'un paquet est plus r�cent que la
version appartenant � la distribution par d�faut, mais moins r�cent que
la version appartenant � une autre distribution. Un tel exemplaire sera mis
� niveau car au moins <emphasis/l'un/ des exemplaires disponibles poss�de
une plus haute priorit� que la sienne.
</para>

</RefSect2>

<RefSect2><Title>Cons�quences des pr�f�rences</>

<para>Le fichier des pr�f�rences permet � l'administrateur-syst�me de
choisir ses priorit�s. Ce fichier est constitu� d'une ou plusieurs entr�es
s�par�es par des lignes blanches. Ces entr�es peuvent avoir deux formes,
une forme particuli�re et une forme g�n�rale.
<itemizedlist>
<listitem>
<simpara>La forme particuli�re affecte une priorit� 
(<emphasis>Pin-Priority</emphasis>) � un paquet pr�cis, � une version pr�cise 
ou � un intervalle sp�cifiant plusieurs versions. Par exemple, l'entr�e 
suivante affecte une priorit� haute � toutes les versions du paquet
<filename/perl/ dont le num�ro de version commence par <literal/5.8/.
</simpara>

<programlisting>
Package: perl
Pin: version 5.8*
Pin-Priority: 1001
</programlisting>
</listitem>

<listitem><simpara>
La forme g�n�rale affecte une priorit� � toutes les versions d'un paquet dans
une distribution donn�e (c'est-�-dire, � toutes les versions d'un paquet qui
sont list�es dans un fichier <filename/Release/), ou � toutes les versions 
d'un paquet provenant d'un site internet identifi� par un nom pleinement
qualifi�. 
</simpara>

<simpara>Cette forme g�n�rale des entr�es du fichier des pr�f�rences
s'applique seulement aux groupes de paquets. Par exemple, l'entr�e suivante
affecte une priorit� haute � tous les exemplaires disponibles dans le
site local.
</simpara>

<programlisting>
Package: *
Pin: origin ""
Pin-Priority: 999
</programlisting>

<simpara>Attention ! le mot-cl� utilis� ici, <literal/origin/, ne doit pas
�tre confondu avec l'�&nbsp;Origin:&nbsp;� d'une distribution indiqu� dans
un fichier <filename/Release/. Ce qui suit l'�tiquette �&nbsp;Origin:&nbsp;� 
dans un fichier <filename/Release/ n'est pas l'adresse d'un site internet
mais le nom d'un auteur ou d'un vendeur, comme Debian ou Ximian.
</simpara>

<simpara>L'entr�e suivante affecte une priorit� basse � toutes les versions
d'un paquet appartenant � tout distribution dont le nom 
d'�&nbsp;Archive&nbsp;� (<literal/a/) est <literal/unstable/.
</simpara>

<programlisting>
Package: *
Pin: release a=unstable
Pin-Priority: 50
</programlisting>

<simpara>L'entr�e suivante affecte une priorit� haute � toutes les versions
d'un paquet appartenant � toute distribution dont le nom 
d'�&nbsp;Archive&nbsp;� (<literal/a/) est <literal/stable/ et dont le num�ro
de �&nbsp;Version&nbsp;� (<literal/v/) est <literal/3.0/. 
</simpara>

<programlisting>
Package: *
Pin: release a=stable, v=3.0
Pin-Priority: 50
</programlisting>
</listitem>
</itemizedlist>
</para>

</RefSect2>

<RefSect2><Title>Comment APT interpr�te-t-il les priorit�s&nbsp;?</Title>

<para>Les priorit�s (P) indiqu�es dans le fichier des pr�f�rences doivent
�tre des entiers positifs ou n�gatifs. Ils sont interpr�t�s comme suit&nbsp;:

<variablelist>
<varlistentry><term>P &gt; 1000</term>
<listitem><simpara>Cette priorit� entra�ne l'installation du paquet m�me s'il
s'agit d'un retour en arri�re.
</simpara></listitem>
</varlistentry>
<varlistentry><term>990 &lt; P &lt;=1000</term>
<listitem><simpara>L'exemplaire sera install�, m�me s'il n'appartient pas �
la distribution par d�faut&nbsp;; mais il ne sera pas install� si l'exemplaire
install� est plus r�cent.
</simpara></listitem>
</varlistentry>
<varlistentry><term>500 &lt; P &lt;=990</term>
<listitem><simpara>L'exemplaire sera install�, sauf s'il existe un exemplaire 
appartenant � la distribution par d�faut ou si la version install�e est plus
r�cente.
</simpara></listitem>
</varlistentry>
<varlistentry><term>100 &lt; P &lt;=500</term>
<listitem><simpara>L'exemplaire sera install�, sauf s'il existe un exemplaire
appartenant � une autre distribution ou si la version install�e est plus
r�cente.
</simpara></listitem>
<varlistentry><term>0 &lt;= P &lt;=100</term>
<listitem><simpara> L'exemplaire sera install� si aucun exemplaire du paquet
n'est install�.
</simpara></listitem>
</varlistentry>
<varlistentry><term>P &lt; 0</term>
<listitem><simpara>Cette priorit� emp�che l'installation de l'exemplaire.
</simpara></listitem>
</varlistentry>
</variablelist>
</para>

<para>Si l'une des entr�es de forme particuli�re correspond � l'exemplaire
disponible d'un paquet, cette entr�e d�termine la priorit� de cet exemplaire.
Si deux entr�es de forme particuli�re correspondent � l'exemplaire disponible 
d'un paquet, la premi�re entr�e rencontr�e d�termine la priorit�. Si deux
entr�es de forme g�n�rale correspondent � l'exemplaire disponible d'un paquet,
la premi�re entr�e rencontr�e d�termine la priorit�.
</para>

<para>Supposons par exemple que le fichier des pr�f�rences contienne les trois
entr�es d�crites plus haut&nbsp;:

<programlisting>
Package: perl
Pin: version 5.8*
Pin-Priority: 1001

Package: *
Pin: origin ""
Pin-Priority: 999

Package: *
Pin: release unstable
Pin-Priority: 50
</programlisting>

Alors&nbsp;:

<itemizedlist>
<listitem><simpara> La version la plus r�cente du paquet <literal/perl/ sera
install� pour autant que son num�ro de version commence par <literal/5.8/.
Si l'<emphasis/une/ des versions 5.8* existe et si la version install�e est
une version 5.9*, il y aura un retour en arri�re.
</simpara></listitem>
<listitem><simpara>Les exemplaires des paquets (autres que <literal/perl/)
disponibles dans le site local ont priorit� sur les autres exemplaires,
m�me ceux appartenant � la distribution par d�faut.
</simpara></listitem>
<listitem><simpara> L'exemplaire d'un paquet dont l'origine n'est pas le site
local mais un site internet list� dans &sources-list; et qui appartient � une
distribution <literal/unstable/, ne sera install� que si aucun exemplaire
du paquet n'est d�j� install�.
</simpara></listitem>
</itemizedlist>
</para>
</RefSect2>

<RefSect2><Title>D�termination de la version des paquets et des propri�t�s des
distributions</Title>

<para>Chaque source list�e dans le fichier &sources-list; doit fournir
les fichiers <filename>Packages</filename> et <filename>Release</filename>
qui d�crivent les exemplaires des paquets disponibles � cet endroit.
</para>

<para>Le fichier <filename>Packages</filename> se trouve normalement dans le
r�pertoire 
<filename>.../dists/<replaceable>dist-name</replaceable>/<replaceable>component</replaceable>/<replaceable>arch</replaceable></filename>, par exemple,
<filename>.../dists/stable/main/binary-i386/Packages</filename>. Il consiste
en entr�es compos�es de lignes, une pour chaque paquet disponible dans le
r�pertoire. Seules deux lignes des entr�es sont pertinentes pour la
d�termination des priorit�s&nbsp;:
<variablelist>
<varlistentry>
<term>La ligne <literal/Package:/ </term>
<listitem><simpara>donne le nom du paquet</simpara></listitem>
</varlistentry>
<varlistentry>
<term>La ligne <literal/Version:/ </term>
<listitem><simpara>donne le num�ro de version du paquet</simpara></listitem>
</varlistentry>
</variablelist>
</para>

<para> Le fichier <filename>Release</filename> se trouve normalement dans le
r�pertoire
<filename>.../dists/<replaceable>dist-name</replaceable></filename>, par exemple, <filename>.../dists/stable/Release</filename>, ou <filename>.../dists/woody/Release</filename>.
Il consiste en une seule entr�e compos�e de plusieurs lignes qui s'applique �
<emphasis/tous/ les exemplaires des paquets situ�s dans les r�pertoires sous
le r�pertoire parent. Contrairement au fichier <filename/Packages/, presque 
toutes les lignes du fichier <filename/Release/ sont pertinentes pour
d�terminer les priorit�s&nbsp;:
<variablelist>
<varlistentry>
<term>La ligne <literal/Archive:/ </term>
<listitem><simpara>nomme l'archive � laquelle appartiennent tous les 
exemplaires des paquets situ�s dans les r�pertoires. Par exemple, la ligne
<literal/Archive: stable/ indique que tous les paquets dans les r�pertoires
situ�s sous le r�pertoire parent du fichier <filename/Release/ appartiennent
� l'archive <literal/stable/. Indiquer cette valeur dans le fichier des
pr�f�rences demanderait cette ligne&nbsp;:
</simpara>

<programlisting>
Pin: release a=stable
</programlisting>
</listitem>
</varlistentry>

<varlistentry>
<term>La ligne <literal/Version:/ </term>
<listitem><simpara>indique la version de la distribution. Par exemple, les
exemplaires des paquets dans les r�pertoires peuvent appartenir � la
distribution Debian GNU/Linux version 3.0. Il n'y a pas de num�ro de version
pour les distributions testing et unstable car elles n'ont pas encore �t�
publi�es. Indiquer cette valeur dans le fichier des pr�f�rences demanderait 
ces lignes&nbsp;:
</simpara>

<programlisting>
Pin: release v=3.0
Pin: release a=stable v=3.0
Pin: release 3.0
</programlisting>

</listitem>
</varlistentry>

<varlistentry>
<term>La ligne <literal/Component:/</term>
<listitem><simpara>nomme un composant qui indique le type de licence associ�
aux exemplaires situ�s dans les r�pertoires sous le fichier 
<filename/Release/. Par exemple, la ligne <literal/Component: main/ indique
que tous les exemplaires dans les r�pertoires appartiennent au composant
<literal/main/, c'est-�-dire que leur licence est en accord avec les
Directives Debian pour le logiciel libre. Indiquer ce composant dans le 
fichier des pr�f�rences demanderait cette ligne&nbsp;:
</simpara>

<programlisting>
Pin: release c=main
</programlisting>
</listitem>
</varlistentry>

<varlistentry>
<term>La ligne <literal/Origin:/ </term>
<listitem><simpara>nomme le producteur des exemplaires des paquets situ�s
dans les r�pertoires sous le fichier <filename/Release/. En g�n�ral, c'est
<literal/Debian/. Indiquer cette origine dans le fichier des pr�f�rences 
demanderait cette ligne&nbsp;:
</simpara>

<programlisting>
Pin: release o=Debian
</programlisting>
</listitem>
</varlistentry>

<varlistentry>
<term>La ligne <literal/Label:/ </term>
<listitem><simpara>semble redondante. En g�n�ral, c'est
<literal/Debian/. Indiquer cette origine dans le fichier des pr�f�rences
demanderait cette ligne&nbsp;:
</simpara>

<programlisting>
Pin: release l=Debian
</programlisting>
</listitem>
</varlistentry>
</variablelist>
</para>

<para>Tous les fichiers <filename>Packages</filename> et
<filename>Release</filename> r�cup�r�s dans des sources list�es par le
fichier &sources-list; sont conserv�s dans le r�pertoire
<filename>/var/lib/apt/lists</filename> ou dans le fichier sp�cifi� par la
variable <literal/Dir::State::Lists/ dans le fichier <filename/apt.conf/.
Par exemple, le fichier 
<filename>debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release</filename> contient le fichier <filename>Release</filename> du site 
<literal/debian.lcs.mit.edu/, architecture <literal/binary-i386/ et
composant <literal/contrib/ de la distribution <literal/unstable/.
</para>

</RefSect2>

<RefSect2><Title>Lignes facultatives dans le fichier des pr�f�rences</Title>

<para>Toute entr�e du fichier des pr�f�rences peut commencer par une ou
plusieurs lignes contenant le mot <literal/Explanation:/. Cela permet de
commenter l'entr�e.
</para>

<para>La ligne <literal/Pin-Priority:/ d'une entr�e est facultative. Si elle
n'existe pas, APT affecte une priorit� inf�rieure de 1 � la valeur sp�cifi�e
sur une ligne commen�ant par <literal/Pin-Priority: release .../.
</para>
</RefSect2>
</RefSect1>

<RefSect1><Title>Exemples</>
<RefSect2><Title>Comment suivre Stable&nbsp;?</Title>

<para>Le fichier des pr�f�rences suivant affecte une priorit� plus haute que
la priorit� par d�faut (500) � tous les exemplaires appartenant � la
distribution <literal/stable/ et une priorit� prohibitivement basse � tous
les exemplaires appartenant � d'autres distributions <literal/Debian/.

<programlisting>
Package: *
Pin: release a=stable
Pin-Priority: 900

Explanation: Ne pas installer des exemplaires d'origine Debian
Explanation: sauf ceux de la distribution stable 
Package: *
Pin: release o=Debian
Pin-Priority: -10
</programlisting>
</para>

<para>Avec le fichier des pr�f�rences ci-dessus et un fichier &sources-list;
ad�quat, les commandes suivantes utiliseront les versions les plus r�centes
de <literal/stable/ pour faire la mise � niveau&nbsp;:

<programlisting>
apt-get install <replaceable>paquet</replaceable>
apt-get upgrade
apt-get dist-upgrade
</programlisting>
</para>

<para>La commande suivante utilisera la version la plus r�cente de la 
distribution <literal/testing/ pour mettre � niveau le paquet sp�cifi�&nbsp;;
cependant les mises � niveau ult�rieures ne se feront pas automatiquement.

<programlisting>
apt-get install <replaceable>paquet</replaceable>/testing
</programlisting>
</RefSect2>

 <RefSect2><Title>Comment suivre Testing&nbsp;?</Title>

<para>Le fichier des pr�f�rences suivant affecte une priorit� haute aux
versions des paquets appartenant � la distribution <literal/testing/, une
priorit� moindre aux versions appartenant � la distribution <literal/unstable/
et une priorit� prohibitivement basse aux versions  appartenant � d'autres
distributions <literal/Debian/.

<programlisting>
Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Package: *
Pin: release o=Debian
Pin-Priority: -10
</programlisting>
</para>

<para>Avec le fichier des pr�f�rences ci-dessus, les commandes suivantes
utiliseront les versions les plus r�centes de <literal/testing/ pour faire
la mise � niveau&nbsp;:

<programlisting>
apt-get install <replaceable>paquet</replaceable>
apt-get upgrade
apt-get dist-upgrade
</programlisting>
</para>

<para>La commande suivante utilisera la version la plus r�cente de la
distribution <literal/unstable/ pour mettre � niveau le paquet sp�cifi�&nbsp;;
Par la suite, <command>apt-get dist-upgrade</command> et les autres
commandes <emphasis/utiliseront/  les versions les plus r�centes de
<literal/unstable/ pour mettre � niveau le paquet.

<programlisting>
apt-get install <replaceable>paquet</replaceable>/unstable
</programlisting>
</para>

</RefSect2>
</RefSect1>

 <RefSect1><Title>See Also</>
<para>
&apt-get; &apt-cache; &apt-conf; &sources-list;
 </RefSect1>

 &manbugs;
 &manauthor;
&traducteur;
</refentry>