Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

apt_preferences(5)


APT_PREFERENCES

APT_PREFERENCES

NAME
DESCRIPTION
EXEMPLES
FICHIERS
VOIR AUSSI
BOGUES
TRADUCTEURS
AUTHOR
NOTES

NAME

apt_preferences − Fichier de contrôle des préférences pour APT

DESCRIPTION

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 des préférences 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 des préférences 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 continir que des caractères alphanumériques, des tirets (−), des caractères de soulignement (_) et des points (.). Dans le cas contraire, ils seront ignorés sans avertissement.

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";

Quand une distribution par défaut a été indiquée, APT utilise l'algorithme suivant pour déterminer la priorité des versions d'un paquet :

priorité 1

pour les versions issues d'archives dont le fichier Release comporte la mention « NotAutomatic: yes » comme, par exemple, l'archive « experimental » de Debian.

une priorité égale à 100

est affectée à la version déjà installée (si elle existe).

une priorité égale à 500

est affectée aux versions qui ne sont pas installées et qui n'appartiennent pas à la distribution par défaut.

une priorité égale à 990

est affectée aux versions qui ne sont pas installées et qui appartiennent à la distribution par défaut.

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.

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.

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.8.

Package: perl
Pin: version 5.8*
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.

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

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 l' nom d'hôte « ftp.de.debian.org ».

Package: *
Pin: origin "ftp.de.debian.org"
Pin−Priority: 999

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.

Package: *
Pin: release a=unstable
Pin−Priority: 50

L'entrée suivante affecte une priorité basse à toutes les versions d'un paquet appartenant à toute distribution dont le nom de code est wheezy.

Package: *
Pin: release n=wheezy
Pin−Priority: 900

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 3.0.

Package: *
Pin: release a=stable, v=3.0
Pin−Priority: 500

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 > 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&eacute;e, m&ecirc;me si elle n'appartient pas &agrave; la distribution par d&eacute;faut ; mais elle ne sera pas install&eacute;e si la version install&eacute;e est plus r&eacute;cente.

500 < P <=990

La version sera install&eacute;e, sauf s'il existe une version appartenant &agrave; la distribution par d&eacute;faut ou si la version install&eacute;e est plus r&eacute;cente.

100 < P <=500

la version sera install&eacute;e, sauf s'il existe une version appartenant &agrave; une autre distribution ou si la version install&eacute;e est plus r&eacute;cente.

0 < P <=100

la version sera install&eacute;e si aucune version du paquet n'est install&eacute;e.

P < 0

cette priorit&eacute; emp&ecirc;che l'installation de la version.

Si l'une des entr&eacute;es de forme particuli&egrave;re correspond &agrave; la version disponible d'un paquet, la premi&egrave;re entr&eacute;e trouv&eacute;e d&eacute;termine la priorit&eacute; de cette version. S'il n'en existe pas, et si l'une des entr&eacute;es de forme g&eacute;n&eacute;rale correspond &agrave; la version disponible d'un paquet, la premi&egrave;re entr&eacute;e trouv&eacute;e d&eacute;termine la priorit&eacute;.

Supposons par exemple que le fichier des pr&eacute;f&eacute;rences contienne les trois entr&eacute;es d&eacute;crites ci−dessous :

Package: perl
Pin: version 5.8*
Pin−Priority: 1001

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

Package: *
Pin: release unstable
Pin−Priority: 50

Alors :

• La version la plus r&eacute;cente du paquet perl sera install&eacute; pour autant que son num&eacute;ro de version commence par 5.8. Si l'une des versions 5.8* existe et si la version install&eacute;e est une version 5.9*, il y aura un retour en arri&egrave;re.

• Les versions des paquets (autres que perl) disponibles dans le site local ont priorit&eacute; sur les autres versions, m&ecirc;me celles appartenant &agrave; la distribution par d&eacute;faut.

• La version d'un paquet dont l'origine n'est pas le site local mais un site Internet mentionn&eacute; dans sources.list(5) et qui appartient &agrave; une distribution unstable, ne sera install&eacute;e que si aucune version du paquet n'est d&eacute;j&agrave; install&eacute;e.

D&eacute;termination de la version des paquets et des propri&eacute;t&eacute;s des distributions
Chaque source indiqu&eacute;e dans le fichier sources.list(5) doit fournir les fichiers Packages et Release qui d&eacute;crivent les paquets disponibles &agrave; cet endroit.

Le fichier Packages se trouve normalement dans le r&eacute;pertoire .../dists/dist−name/component/arch, par exemple, .../dists/stable/main/binary−i386/Packages. Il consiste en entr&eacute;es compos&eacute;es de lignes, une pour chaque paquet disponible dans le r&eacute;pertoire. Seules deux lignes des entr&eacute;es sont pertinentes pour la d&eacute;termination des priorit&eacute;s :

la ligne Package:

donne le nom du paquet

la ligne Version:

donne le num&eacute;ro de version du paquet

Le fichier Release se trouve normalement dans le r&eacute;pertoire .../dists/nom−distribution, par exemple, .../dists/stable/Release, ou .../dists/squeeze/Release. Il consiste en une seule entr&eacute;e compos&eacute;e de plusieurs lignes qui s'applique &agrave; tous les paquets situ&eacute;s dans les r&eacute;pertoires sous le r&eacute;pertoire parent. Contrairement au fichier Packages, presque toutes les lignes du fichier Release sont pertinentes pour d&eacute;terminer les priorit&eacute;s :

La ligne Archive: ou Suite:

nomme l'archive &agrave; laquelle appartiennent tous les paquets situ&eacute;s dans les r&eacute;pertoires. Par exemple, la ligne Archive: stable indique que tous les paquets dans les r&eacute;pertoires situ&eacute;s sous le r&eacute;pertoire parent du fichier Release appartiennent &agrave; l'archive stable. Indiquer cette valeur dans le fichier des pr&eacute;f&eacute;rences demanderait cette ligne :

Pin: release a=stable

la ligne Codename:

indique le nom de code auquel appartiennent tous les paquets situ&eacute;s dans les r&eacute;pertoires. Par exemple, la ligne Codename: wheezy indique que tous les paquets dans les r&eacute;pertoires situ&eacute;s sous le r&eacute;pertoire parent du fichier Release appartiennent &agrave; la version portant le nom de code wheezy. Indiquer cette valeur dans le fichier des pr&eacute;f&eacute;rences demanderait cette ligne :

Pin: release n=wheezy

la ligne Version:

indique la version de la distribution. Par exemple, les paquets dans les r&eacute;pertoires peuvent appartenir &agrave; la distribution Debian GNU/Linux version 3.0. Il n'y a pas de num&eacute;ro de version pour les distributions testing et unstable car elles n'ont pas encore &eacute;t&eacute; publi&eacute;es. Indiquer cette valeur dans le fichier des pr&eacute;f&eacute;rences demanderait ces lignes :

Pin: release v=3.0
Pin: release a=stable, v=3.0
Pin: release 3.0

La ligne Component:

nomme un composant qui indique le type de licence associ&eacute;e aux paquets situ&eacute;s dans les r&eacute;pertoires sous le fichier Release. Par exemple, la ligne Component: main indique que tous les exemplaires dans les r&eacute;pertoires appartiennent au composant main, c'est−&agrave;−dire que leur licence est en accord avec les Directives Debian pour le logiciel libre. Indiquer ce composant dans le fichier des pr&eacute;f&eacute;rences demanderait cette ligne :

Pin: release c=main

La ligne Origin:

nomme l'origine des paquets situ&eacute;s dans les r&eacute;pertoires sous le fichier Release. En g&eacute;n&eacute;ral, c'est Debian. Indiquer cette origine dans le fichier des pr&eacute;f&eacute;rences demanderait cette ligne :

Pin: release o=Debian

La ligne Label:

indique une &eacute;tiquette pour les paquets qui se trouvent dans les r&eacute;pertoires sous le fichier Release. En g&eacute;n&eacute;ral, c'est Debian. Indiquer cette origine dans le fichier des pr&eacute;f&eacute;rences demanderait cette ligne :

Pin: release l=Debian

Tous les fichiers Packages et Release r&eacute;cup&eacute;r&eacute;s dans des sources indiqu&eacute;es dans le fichier sources.list(5) sont conserv&eacute;s dans le r&eacute;pertoire /var/lib/apt/lists ou dans le fichier sp&eacute;cifi&eacute; 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.

Lignes facultatives dans le fichier des pr&eacute;f&eacute;rences
Toute entr&eacute;e du fichier des pr&eacute;f&eacute;rences peut commencer par une ou plusieurs lignes contenant le mot Explanation:. Cela permet des commentaires.

EXEMPLES

M&eacute;thode pour suivre Stable
Le fichier des pr&eacute;f&eacute;rences suivant affecte une priorit&eacute; plus haute que la priorit&eacute; par d&eacute;faut (500) &agrave; tous les exemplaires appartenant &agrave; la distribution stable et une priorit&eacute; prohibitivement basse &agrave; tous les exemplaires appartenant &agrave; 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

Avec le fichier des pr&eacute;f&eacute;rences ci−dessus et un fichier sources.list(5) ad&eacute;quat, les commandes suivantes utiliseront les versions les plus r&eacute;centes de stable pour faire la mise &agrave; niveau :

apt−get install paquet
apt−get upgrade
apt−get dist−upgrade

La commande suivante utilisera la version la plus r&eacute;cente de la distribution testing pour mettre &agrave; niveau le paquet sp&eacute;cifi&eacute; ; cependant les mises &agrave; niveau ult&eacute;rieures du paquet ne se feront pas &agrave; moins de relancer la commande.

apt−get install paquet/testing

M&eacute;thode pour suivre Testing ou Unstable
Le fichier des pr&eacute;f&eacute;rences suivant affecte une priorit&eacute; haute aux versions des paquets appartenant &agrave; la distribution testing, une priorit&eacute; moindre aux versions appartenant &agrave; la distribution unstable et une priorit&eacute; prohibitivement basse aux versions appartenant &agrave; 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

Avec un fichier sources.list(5) appropri&eacute; et le fichier des pr&eacute;f&eacute;rences ci−dessus, les commandes suivantes utiliseront les versions les plus r&eacute;centes de testing pour faire la mise &agrave; niveau :

apt−get install paquet
apt−get upgrade
apt−get dist−upgrade

La commande suivante utilisera la version la plus r&eacute;cente de la distribution unstable pour mettre &agrave; niveau le paquet sp&eacute;cifi&eacute; ; Par la suite, apt−get upgrade mettra le paquet &agrave; jour avec la plus r&eacute;cente version dans testing si elle est plus r&eacute;cente que la version install&eacute;e ou avec la plus r&eacute;cente version dans unstable si elle est plus r&eacute;cente que la version install&eacute;e.

apt−get install paquet/unstable

Suivre l'&eacute;volution d'une version par son nom de code
Le fichier des pr&eacute;f&eacute;rences suivant affecte une priorit&eacute; plus haute que la priorit&eacute; par d&eacute;faut (500) &agrave; tous les exemplaires appartenant &agrave; la version portant le nom de code indiqu&eacute; et une priorit&eacute; prohibitivement basse &agrave; tous les exemplaires appartenant &agrave; d'autres distributions Debian. Veuillez noter qu'avec ce fichier de pr&eacute;f&eacute;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&eacute;c&eacute;dents.

Explanation: Ne pas installer des exemplaires d'origine Debian
Explanation: sauf ceux de la distribution wheezy ou sid
Package: *
Pin: release n=wheezy
Pin−Priority: 900

Explanation: Debian unstable porte toujours le nom sid
Package: *
Pin: release a=sid
Pin−Priority: 800

Package: *
Pin: release o=Debian
Pin−Priority: −10

Avec le fichier des pr&eacute;f&eacute;rences ci−dessus et un fichier sources.list(5) ad&eacute;quat, les commandes suivantes utiliseront les versions les plus r&eacute;centes de wheezy pour faire la mise &agrave; niveau :

apt−get install paquet
apt−get upgrade
apt−get dist−upgrade

La commande suivante utilisera la version la plus r&eacute;cente de la distribution sid pour mettre &agrave; niveau le paquet sp&eacute;cifi&eacute; ; Par la suite, apt−get upgrade mettra le paquet &agrave; jour avec la plus r&eacute;cente version dans wheezy si elle est plus r&eacute;cente que la version install&eacute;e ou avec la plus r&eacute;cente version dans sid si elle est plus r&eacute;cente que la version install&eacute;e.

apt−get install paquet/sid

FICHIERS

/etc/apt/preferences

Fichier des pr&eacute;f&eacute;rences. C'est dans ce fichier qu'on peut faire de l'&eacute;tiquetage (pinning) c'est−&agrave;−dire, choisir d'obtenir des paquets d'une source distincte ou d'une distribution diff&eacute;rente. Él&eacute;ment de configuration : Dir::Etc::Preferences.

/etc/apt/preferences.d/

Fragments de fichiers pour la pr&eacute;f&eacute;rence des versions. Él&eacute;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 &agrave; propos d'APT, veuillez lire /usr/share/doc/debian/bug−reporting.txt ou utiliser la commande reportbug(1).

TRADUCTEURS

J&eacute;r&ocirc;me Marant, Philippe Batailler, Christian Perrier bubulle@debian.org (2000, 2005, 2009, 2010), Équipe de traduction francophone de Debian debian−l10n−french@lists.debian.org

Veuillez noter que cette traduction peut contenir des parties non traduites Cela est volontaire, pour &eacute;viter de perdre du contenu quand la traduction est l&eacute;g&egrave;rement en retard sur le contenu d'origine.

AUTHOR

Équipe de d&eacute;veloppement d'APT

NOTES

1.

Page des bogues d’APT

http://bugs.debian.org/src:apt



apt_preferences(5)