Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
15 mars 2010

package manager apt           gestionnaire de paquets


apt_preferences

apt_preferences

fichier de contrôle des préférences pour APT

On peut définir le dépôt par défaut par:
apt-get install -t testing paquet
ou
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:

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.

   Puis APT applique les règles suivantes pour déterminer la version du paquet qu'il faut installer (elles sont listées 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
- 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éta-données, soit l'option —reinstall a été donnée, installer la version qui n'est pas installée.

   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

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é 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

Priorités

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

   Détermination de la version des paquets et des propriétés des distributions

   Chaque source listée dans sources.list doit fournir les fichiers Packages et Release qui décrivent les paquets disponibles à cet endroit

   Le fichier package doit se trouver dans .../dists/dist-name/component/arch. Il consiste en entrées composées de lignes, une pour chaque paquet disponible. Seules 2 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 .../dist/dist-name Il consiste en une seule entrée composée de plusieurs lignes qui s'applique a tous les paquets situés dans les répertoires sous le répertoire parent

la ligne Archive nomme l'archive à laquelle appartiennent tous les paquets situés dans les répertoires.
Pin: release a=stable

La ligne Version indique la version de la distribution.
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ée aux paquets situés dans les répertoires sous le fichier Release.
Pin: release c=main

La ligne Origin nomme l'origine des paquets situés dans les répertoires sous le fichier Release.
Pin: release o=Debian

La ligne Label indique un label pour les paquets qui se trouvent dans les répertoires sous le fichier Release.
Pin: release l=Debian

   Tous les fichiers Packages et Release récupérés dans des sources listées par le fichier sources.list 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.