NOM
apt_preferences - Fichier de contrôle des préférences pour APTDESCRIPTION
Le fichier d'APT, /etc/apt/preferences et les fichiers fragments situés dans le dossier /etc/apt/preferences.d/, peuvent être utilisés pour choisir la version des paquets que l'on veut installer. Quand le fichier sources.list(5) contient des références à plusieurs distributions (par exemple, stable et testing), plusieurs versions d'un paquet peuvent être installées. APT affecte une priorité à chaque version disponible. La commande apt-get, tenant compte des contraintes de dépendance, installe la version qui possède la priorité la plus haute. Le fichier preferences annule les priorités assignées par défaut aux versions des paquets : ainsi l'utilisateur peut choisir la version qu'il veut installer. Si le fichier sources.list(5) 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. Dans ce cas, apt-get télécharge l'exemplaire qui apparaît en premier dans le fichier sources.list(5). Le fichier preferences n'influe pas sur le choix des exemplaires, seulement sur le choix de la version. Les préférences sont un outil puissant pour les administrateurs système mais peuvent devenir leur pire cauchemar si elles sont utilisées sans précautions. APT ne remettra pas en doute les réglages choisis. Des valeurs erronées pourront alors conduire à des paquets non installables ou à des décisions incorrectes lors de la mise à jour des paquets. Des problèmes supplémentaires peuvent survenir si des distributions multiples sont mélangées sans une bonne compréhension des paragraphes qui suivent. Veuillez noter que les fichiers du répertoire /etc/apt/preferences.d sont analysés par ordre alphanumérique ascendant, doivent avoir l'extension "pref" ou aucune extension et ne peuvent contenir que des caractères alphanumériques, des tirets (-), des caractères de soulignement (_) et des points (.). Dans le cas contraire, APT affichera un avertissement indiquant qu'il a ignoré un fichier si celui-ci ne correspond par à un motif défini dans Dir::Ignore-Files-Silently (les fichiers correspondant à cette variable de configuration étant, eux, ignorés silencieusemennt).Priorités affectées par défaut
Quand le fichier des préférences n'existe pas, ou quand aucune entrée de ce fichier ne s'applique à une version précise, la priorité affectée à cette version est la priorité de la distribution à laquelle elle appartient. On peut distinguer une distribution et lui donner une priorité plus haute que celle des autres distributions : on l'appelle la distribution par défaut ou « target release » et elle peut être définie sur la ligne de commande de apt-get ou dans le fichier de configuration d'APT, /etc/apt/apt.conf. Par exemple :apt-get install -t testing paquet
APT::Default-Release "stable";
to the versions coming from archives which in
their Release files are marked as "NotAutomatic: yes" but not
as "ButAutomaticUpgrades: yes" like the Debian experimental archive,
as well as versions that are not phased on this systems.
une priorité égale à 100
pour les versions issues d'archives dont le
fichier Release comporte la mention « NotAutomatic:
yes » et « ButAutomaticUpgrades:
yes » comme l'archive des rétroportages de Debian depuis
squeeze-backports.
une priorité égale à 500
est affectée aux versions qui
n'appartiennent pas à la distribution par défaut.
une priorité égale à 990
est affectée aux versions qui
appartiennent à la distribution par défaut.
La priorité la plus élevée dont la description correspond
à la version est affectée à la version.
Quand aucune distribution par défaut n'a été
indiquée, APT affecte simplement une priorité égale
à 100 à toute version installée d'un paquet et une
priorité égale à 500 à tout version non
installée. Cela à l'exception des versions issues des archives
qui ont la mention « NotAutomatic: yes » dans leur
fichier Release, qui auront alors une priorité égale
à 1 ou à 100 si elles sont également
marquées avec « ButAutomaticUpgrades:
yes ».
Puis APT applique les règles suivantes pour déterminer la version
du paquet qu'il faut installer (par ordre de priorité) :
•Ne jamais revenir en arrière,
sauf si la priorité d'une version disponible
dépasse 1000. « Revenir en
arrière » 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 ; de
telles valeurs ne peuvent être définies que dans le fichier des
préférences. Notez aussi qu'il est risqué de revenir en
arrière.
•Installer la version qui
possède la priorité la plus haute.
•Quand deux (ou plus) versions ont la
même priorité, installer la version la plus récente
(c.-à-d. celle dont le numéro de version est le plus
grand).
•Quand deux (ou plus) versions ont la
même priorité et le même numéro de version, mais
soit les paquets diffèrent par certaines métadonnées,
soit l'option --reinstall a été donnée, installer la
version qui n'est pas installée.
En général, la version installée d'un paquet
(priorité 100) n'est pas aussi récente que les versions
disponibles dans les sources listées dans le fichier
sources.list(5) (priorité 500 ou 990). Et donc le
paquet sera mis à niveau avec la commande : apt-get install
paquet ou apt-get dist-upgrade.
La version installée d'un paquet peut être - rarement -
plus récente que tout autre version disponible. Les commandes
apt-get install paquet ou apt-get upgrade ne
provoquent pas de retour en arrière.
Parfois, la version installée d'un paquet est plus récente que la
version appartenant à la distribution par défaut, mais moins
récente que la version appartenant à une autre distribution. Une
telle version sera mise à niveau par les commandes apt-get install
paquet ou apt-get upgrade car au moins l'une
des versions disponibles possède une plus haute priorité que
celle de la version installée.
Phased Updates
APT understands a field called Phased-Update-Percentage which can be used to control the rollout of a new version. It is an integer between 0 and 100. A system's eligibility to a phased update is determined by seeding random number generator with the package source name, the version number, and /etc/machine-id, and then calculating an integer in the range [0, 100]. If this integer is larger than the Phased-Update-Percentage, the version is pinned to 1, and thus held back. Otherwise, normal policy rules apply. In case you have multiple systems that you want to receive the same set of updates, you can set APT::Machine-ID to a UUID such that they all phase the same, or set APT::Get::Never-Include-Phased-Updates or APT::Get::Always-Include-Phased-Updates to true such that APT will never/always consider phased updates.Conséquences des préférences
Le fichier des préférences permet à l'administrateur système de contrôler l'affectation des 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.•La forme particulière affecte
une priorité ( Pin-Priority) à 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 perl
dont le numéro de version commence par 5.32.
Package: perl Pin: version 5.32* Pin-Priority: 1001
•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 Release), ou à
toutes les versions d'un paquet provenant d'un site Internet identifié
par un nom complètement qualifié.
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 à
toutes les versions disponibles dans le site local.
Il est important de noter que le mot-clé utilisé ici est
« origin » qui peut servir à indiquer un
nom d'hôte. Dans l'exemple qui suit, une haute priorité est
donnée à toutes les versions disponibles sur le serveur
identifié par le nom d'hôte
« ftp.de.debian.org ».
Veuillez noter que le mot-clé utilisé ici, origin, ne doit pas
être confondu avec l'Origine d'une distribution indiquée dans un
fichier Release. Ce qui suit l'étiquette
« Origin: » dans un fichier Release n'est pas une
adresse Internet mais le nom d'un auteur ou d'un distributeur, comme
« Debian » ou
« Ximian ».
L'entrée suivante affecte une priorité basse à toutes les
versions d'un paquet appartenant à toute distribution dont le nom
d'« Archive » est unstable.
L'entrée suivante affecte une priorité haute à toutes les
versions d'un paquet appartenant à toute distribution dont le nom de
code est trixie.
L'entrée suivante affecte une priorité haute à toutes les
versions d'un paquet appartenant à toute distribution dont le nom
d'« Archive » est stable et dont le numéro
de « Version » est 12.
Package: * Pin: origin "" Pin-Priority: 999
Package: * Pin: origin "ftp.de.debian.org" Pin-Priority: 999
Package: * Pin: release a=unstable Pin-Priority: 50
Package: * Pin: release n=trixie Pin-Priority: 900
Package: * Pin: release a=stable, v=12 Pin-Priority: 500
Matching packages in the Package field
The Package field specifies the package that a pinning priority is applied to. The field can either contain a binary package name, a source package name (prefixed with "src:"), a glob(7) expression or a regular expression (surrounded by slashes). Multiple package names, glob(7) expressions and regular expressions can be listed separated by whitespace in which case the record will match any of the matched packages. By default, only packages of the native architecture are matched. To match binary packages of any architecture, add the :any suffix to the package name. You can also limit matching to a specific architecture by appending the architecture name to the package name, separated by a colon character. For example, the following example uses a glob expression and a regular expression to assign the priority 500 to all packages from experimental where the name starts with gnome (as a glob(7)-like expression) or contains the word kde (as a POSIX extended regular expression surrounded by slashes).Package: gnome* /kde/ Pin: release a=experimental Pin-Priority: 500
Package: * Pin: release n=lunar* Pin-Priority: 990
Package: src:apt Pin: version 2.6.1 Pin-Priority: 990
Package: src:*apt*:any Pin: version * Pin-Priority: 990
Méthode d'interprétation des priorités par APT
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 à peu près comme suit : P >= 1000cette 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.
P = 0
a un comportement indéfini, ne pas
l'utiliser.
La première entrée de forme particulière correspondant
à une version disponible de paquet détermine la priorité
de la version du paquet. S'il n'en existe pas, la priorité du paquet
est définie comme la plus haute de toutes les priorités par les
entrées de forme générale correspondant à la
version. Les entrées définies en utilisant des motifs dans le
champ Pin autre que « * » sont traitées
comme des entrées de forme générale.
Supposons par exemple que le fichier des préférences contienne les
trois entrées décrites ci-dessous :
Package: perl Pin: version 5.32* Pin-Priority: 1001 Package: * Pin: origin "" Pin-Priority: 999 Package: * Pin: release unstable Pin-Priority: 50
•La version la plus récente du
paquet perl sera installé pour autant que son numéro de version
commence par 5.32. Si l' une des versions 5.32* existe et si la version
installée est une version 5.36*, il y aura un retour en
arrière.
•Les versions des paquets (autres que
perl) disponibles dans le site local ont priorité sur les autres
versions, même celles appartenant à la distribution par
défaut.
•La version d'un paquet dont l'origine
n'est pas le site local mais un site Internet mentionné dans
sources.list(5) et qui appartient à une distribution unstable,
ne sera installée que si aucune version du paquet n'est
déjà installée.
Détermination de la version des paquets et des propriétés des distributions
Chaque source indiquée dans le fichier sources.list(5) doit fournir les fichiers Packages et Release qui décrivent les paquets disponibles à cet endroit. Le fichier Packages se trouve normalement dans le répertoire .../dists/ dist-name/component/arch, par exemple, .../dists/stable/main/binary-i386/Packages. 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 : la ligne Package:donne le nom du paquet
la ligne Version:
donne le numéro de version du
paquet
Le fichier Release se trouve normalement dans le répertoire .../dists/
nom-distribution, par exemple, .../dists/stable/Release, ou
.../dists/bookworm/Release. Il consiste en une seule entrée
composée de plusieurs lignes qui s'applique à tous les
paquets situés dans les répertoires sous le répertoire
parent. Contrairement au fichier Packages, presque toutes les lignes du
fichier Release sont pertinentes pour déterminer les
priorités :
La ligne Archive: ou Suite:
nomme l'archive à laquelle
appartiennent tous les paquets situés dans les répertoires. Par
exemple, la ligne Archive: stable indique que tous les paquets dans les
répertoires situés sous le répertoire parent du fichier
Release appartiennent à l'archive stable. Indiquer cette valeur dans le
fichier des préférences demanderait cette ligne :
la ligne Codename:
Pin: release a=stable
indique le nom de code auquel appartiennent
tous les paquets situés dans les répertoires. Par exemple, la
ligne Codename: trixie indique que tous les paquets dans les
répertoires situés sous le répertoire parent du fichier
Release appartiennent à la version portant le nom de code trixie.
Indiquer cette valeur dans le fichier des préférences
demanderait cette ligne :
la ligne Version:
Pin: release n=trixie
indique la version de la distribution. Par
exemple, les paquets dans les répertoires peuvent appartenir à
la distribution Debian version 12. 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 :
La ligne Component:
Pin: release v=12 Pin: release a=stable, v=12 Pin: release 12
nomme un composant qui indique le type de
licence associée aux paquets situés dans les répertoires
sous le fichier Release. Par exemple, la ligne Component: main indique que
tous les exemplaires dans les répertoires appartiennent au composant
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 :
La ligne Origin:
Pin: release c=main
nomme l'origine des paquets situés dans
les répertoires sous le fichier Release. En général,
c'est Debian. Indiquer cette origine dans le fichier des
préférences demanderait cette ligne :
La ligne Label:
Pin: release o=Debian
indique une étiquette pour les paquets
qui se trouvent dans les répertoires sous le fichier Release. En
général, c'est Debian. Indiquer cette origine dans le fichier
des préférences demanderait cette ligne :
Tous les fichiers Packages et Release récupérés dans des
sources indiquées dans le fichier sources.list(5) sont
conservés dans le répertoire /var/lib/apt/lists ou dans le
fichier spécifié par la variable Dir::State::Lists dans le
fichier apt.conf. Par exemple, le fichier
debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release contient
le fichier Release du site debian.lcs.mit.edu, architecture binary-i386 et
composant contrib de la distribution unstable.
Pin: release l=Debian
Lignes facultatives dans le fichier des préférences
Toute entrée du fichier des préférences peut commencer par une ou plusieurs lignes contenant le mot Explanation:. Cela permet des commentaires.EXEMPLES
Méthode pour suivre Stable
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 stable et une priorité prohibitivement basse à tous les exemplaires appartenant à d'autres distributions Debian.Explanation: Ne pas installer des exemplaires d'origine Debian Explanation: sauf ceux de la distribution stable Package: * Pin: release a=stable Pin-Priority: 900 Package: * Pin: release o=Debian Pin-Priority: -10
apt-get install paquet apt-get upgrade apt-get dist-upgrade
apt-get install paquet/testing
Méthode pour suivre Testing ou Unstable
Le fichier des préférences suivant affecte une priorité haute aux versions des paquets appartenant à la distribution testing, une priorité moindre aux versions appartenant à la distribution unstable et une priorité prohibitivement basse aux versions appartenant à d'autres distributions Debian.Package: * Pin: release a=testing Pin-Priority: 900 Package: * Pin: release a=unstable Pin-Priority: 800 Package: * Pin: release o=Debian Pin-Priority: -10
apt-get install paquet apt-get upgrade apt-get dist-upgrade
apt-get install paquet/unstable
Suivre l'évolution d'une version par son nom de code
Le fichier des préférences suivant affecte une priorité plus haute que la priorité par défaut (500) à tous les exemplaires appartenant à la version portant le nom de code indiqué et une priorité prohibitivement basse à tous les exemplaires appartenant à d'autres distributions Debian. Veuillez noter qu'avec ce fichier de préférences, APT suivra la transformation d'une version testing en stable puis oldstable. Si, au contraire, vous souhaitez suivre la version testing, vous devriez utiliser un des exemples précédents.Explanation: Ne pas installer des exemplaires d'origine Debian Explanation: sauf ceux de la distribution trixie ou sid Package: * Pin: release n=trixie Pin-Priority: 900 Explanation: Debian unstable porte toujours le nom sid Package: * Pin: release n=sid Pin-Priority: 800 Package: * Pin: release o=Debian Pin-Priority: -10
apt-get install paquet apt-get upgrade apt-get dist-upgrade
apt-get install paquet/sid
FICHIERS
/etc/apt/preferencesFichier des préférences. C'est
dans ce fichier qu'on peut faire de l'épinglage (pinning)
c'est-à-dire, choisir d'obtenir des paquets d'une source distincte ou
d'une distribution différente. Élément de configuration :
Dir::Etc::Preferences.
/etc/apt/preferences.d/
Fragments de fichiers pour la
préférence des versions. Élément de configuration
: Dir::Etc::PreferencesParts.
VOIR AUSSI
apt-get(8) apt-cache(8) apt.conf(5) sources.list(5)BOGUES
Page des bogues d'APT[1]. Si vous souhaitez signaler un bogue à propos d'APT, veuillez lire /usr/share/doc/debian/bug-reporting.txt ou utiliser la commande reportbug(1).TRADUCTEURS
Jérôme Marant, Philippe Batailler, Christian Perrier <[email protected]> (2000, 2005, 2009, 2010), Équipe de traduction francophone de Debian <[email protected]> Veuillez noter que cette traduction peut contenir des parties non traduites. Cela est volontaire, pour éviter de perdre du contenu quand la traduction est légèrement en retard sur le contenu d'origine.AUTEUR
Équipe de développement d'APTNOTES
- 1.
- Page des bogues d'APT
03 janvier 2022 | APT 2.6.1 |