update\-alternatives
Section: suite dpkg (1)
Updated: 2019-04-02
Page Index
NOM
update-alternatives - Maintenance des liens symboliques déterminant les noms
par défaut de certaines commandes
SYNOPSIS
update-alternatives [
option...]
commande
DESCRIPTION
update-alternatives crée, enlève, conserve et affiche des informations
concernant les liens symboliques qui forment le système Debian des
« alternatives ».
Il est possible d'installer, sur un même système et en même temps, des
programmes qui remplissent des fonctions identiques ou semblables. Par
exemple, beaucoup de systèmes installent plusieurs éditeurs de texte en même
temps. Cela permet à chaque utilisateur d'un système de choisir, s'il le
désire, un éditeur de texte différent ; mais cela rend les choses difficiles
pour le programme qui doit choisir un bon éditeur de texte quand
l'utilisateur n'a pas fait de choix précis.
Le système Debian des « alternatives » essaie de résoudre ce problème. Tous
les fichiers qui proposent des fonctions interchangeables se servent d'un
nom générique qui se trouve dans l'arborescence. Le système des
« alternatives » et l'administrateur système font connaître ensemble le
fichier qui est réellement visé par ce nom générique. Par exemple, si les
éditeurs de texte ed(1) et nvi(1) sont tous les deux installés, le
système des « alternatives » fait que le nom générique /usr/bin/editor
renvoie par défaut à /usr/bin/nvi. L'administrateur système peut
remplacer cette assignation par /usr/bin/ed et le système des
« alternatives » ne la changera pas tant qu'on ne lui aura pas demandé
explicitement de le faire.
Le nom générique n'est pas un lien symbolique direct vers l'alternative
choisie. C'est en fait un lien symbolique vers un nom situé dans le
répertoire des « alternatives », lequel nom est à son tour un lien
symbolique vers le fichier réellement visé. Les modifications faites par
l'administrateur système sont ainsi confinées dans le répertoire
/etc ; le FHS (lisez-le) donne de Bonnes Raisons de faire ainsi.
Chaque fois qu'un paquet, proposant un fichier pour une fonction déterminée,
est installé, modifié ou désinstallé, update-alternatives est appelé pour
mettre à jour les informations concernant ce fichier dans le système des
« alternatives ». En général, update-alternatives est appelé dans les
scripts postinst (configure) et prerm (remove and deconfigure) des
paquets Debian.
Il est souvent utile de synchroniser certaines alternatives, de manière à
pouvoir les manipuler globalement ; par exemple, quand plusieurs versions de
vi(1) sont installées, la page de manuel qui est visée par
/usr/share/man/man1/vi.1 devrait correspondre à
/usr/bin/vi. update-alternatives gère ce problème avec les liens
principaux (« master ») et les liens secondaires (« slave »). Quand le
lien principal est changé, tous les liens secondaires associés sont
changés. Un lien principal et ses liens secondaires associés composent un
groupe de liens.
À tout moment, un groupe de liens est dans l'un des deux modes suivants :
automatique ou manuel. Quand un groupe est dans le mode automatique et que
des paquets sont installés ou désinstallés, le système des « alternatives »
décide automatiquement s'il doit mettre à jour les liens et comment le
faire. Dans le mode manuel, le système des « alternatives » ne change pas
les liens et laisse l'administrateur système prendre toutes les décisions
(sauf si quelque chose est cassé).
Un groupe de liens est en mode automatique quand il est créé sur un système
pour la première fois. Quand l'administrateur système modifie le paramétrage
automatique du système, update-alternatives le remarquera la prochaine
fois qu'il sera lancé pour ce groupe aux liens modifiés et il fera passer ce
groupe en mode manuel.
À chaque alternative est associée une priorité. Quand un groupe de liens
est en mode automatique, l'alternative visée par les éléments du groupe est
celle qui possède la priorité la plus élevée.
Quand l'option --config est utilisée, update-alternatives affiche
toutes les possibilités du groupe pour lequel nom est le lien
principal. Le choix actuel est noté par un « * ». Il sera alors demandé quel
choix doit être fait pour ce groupe. Suivant le choix effectué, le groupe de
liens peut ne plus être en mode auto. Il vous faudra utiliser l'option
--auto pour revenir au mode automatique (ou réutiliser --config et
choisir l'entrée marquée comme automatique).
Si vous voulez configurer de manière non interactive, vous pouvez utiliser
l'option --set (voir ci-dessous).
Les différents paquets qui fournissent un même fichier doivent le faire en
collaborant. En d'autres termes, l'utilisation de update-alternatives
est obligatoire pour tous les paquets qui sont dans ce cas et il n'est
pas possible de remplacer un fichier d'un paquet qui n'utilise pas le
mécanisme offert par update-alternatives.
TERMINOLOGIE
Comme les opérations de
update-alternatives sont très compliquées, voici
quelques termes qui faciliteront l'explication.
- nom générique (ou lien alternatif)
-
C'est un nom, par exemple /usr/bin/editor, qui renvoie, à travers le
système des « alternatives », à l'un des fichiers qui remplissent des
fonctions similaires.
- nom alternatif
-
Nom d'un lien symbolique dans le répertoire des alternatives.
- alternative (ou chemin alternatif)
-
C'est le nom d'un fichier particulier dans l'arborescence ; il peut être
accessible avec un nom générique grâce au système d'alternatives.
- répertoire des alternatives
-
C'est le répertoire qui contient les liens symboliques ; il s'agit par
défaut de /etc/alternatives.
- répertoire administratif
-
C'est le répertoire qui contient des renseignements sur l'état de
update-alternatives. Il s'agit par défaut de /var/lib/dpkg/alternatives.
- groupe de liens
-
C'est un ensemble de liens symboliques corrélés, de manière qu'on puisse les
mettre à jour en une seule fois.
- lien principal
-
Dans un groupe de liens, c'est le lien alternatif qui détermine comment sont
configurés les autres liens du groupe.
- lien secondaire (« slave »)
-
Dans un groupe de liens, c'est un lien alternatif contrôlé par la
configuration du lien principal.
- mode automatique
-
Quand un groupe de liens est en mode automatique, le système des
« alternatives » assure que les liens dans le groupe pointent vers
l'alternative possédant la priorité la plus élevée dans ce groupe.
- mode manuel
-
Quand un groupe de liens est en mode manuel, le système des « alternatives »
ne modifie pas le paramétrage de l'administrateur système.
COMMANDES
- --install lien nom chemin priorité [--slave lien nom chemin]...
-
Ajoute un groupe d'alternatives au système. lien est le nom générique du
lien principal, nom est le nom de son lien symbolique, et chemin est
l'alternative présentée pour le lien principal. Les paramètres qui suivent
--slave sont le nom générique, le lien symbolique dans le répertoire des
alternatives et l'alternative pour un lien secondaire. On peut indiquer zéro
ou plusieurs options --slave, chacune suivie par trois
paramètres. L'alternative principale doit exister, sinon la commande
échouera. Cependant, si une alternative secondaire n'existe pas, le lien
secondaire ne sera simplement pas installé (mais un avertissement sera
affiché). Si un fichier existe à l'emplacement où l'alternative doit être
installée, il est conservé sauf si --force est utilisé.
-
Quand le lien principal spécifié existe déjà dans les enregistrements du
système des « alternatives », les renseignements fournis sont ajoutés dans
un nouvel ensemble d'alternatives pour le groupe. Sinon, un nouveau groupe
contenant ces informations est ajouté et mis en mode automatique. Quand un
groupe est en mode automatique, et que la priorité des alternatives
nouvellement ajoutées est supérieure à celle de toutes les alternatives
installées dans ce groupe, les liens symboliques sont mis à jour et pointent
vers les alternatives nouvellement ajoutées.
- --set nom chemin
-
Ajoute le programme chemin comme alternative pour nom. C'est
équivalent à --config mais ce n'est pas interactif et on peut donc écrire
un script.
- --remove nom chemin
-
Enlève une alternative et tous les liens secondaires associés. nom est un
nom dans le répertoire des « alternatives », et chemin est un nom de
fichier auquel nom peut être lié. Quand nom est en effet lié à
chemin, nom est mis à jour et pointe vers une autre alternative
adéquate ou bien est enlevé s'il n'y en a pas d'autre. De même, les liens
secondaires associés sont mis à jour ou enlevés. Quand le lien ne pointe pas
déjà sur chemin, aucun lien n'est modifié ; seules les informations sur
l'alternative sont supprimées.
- --remove-all nom
-
Supprime toutes les alternatives et tous les liens secondaires
associés. nom est un nom dans le répertoire des alternatives.
- --all
-
Utilise --config sur toutes les alternatives. Cette option peut être
combinée avec --skip-auto pour revoir et configurer toutes les
alternatives qui ne sont pas en mode automatique. Les alternatives erronées
sont aussi affichées. Ainsi, une méthode simple pour corriger les
alternatives cassées est d'utiliser yes '' | update-alternatives --force
--all.
- --auto nom
-
Passe le groupe de liens suivant l'alternative de nom en mode
automatique. En même temps, le lien symbolique principal et ses liens
secondaires sont mis à jour et pointent vers les alternatives avec les
priorités les plus élevées.
- --display nom
-
Affiche des renseignements sur le groupe de liens. L'information affichée
comprend le mode du groupe (auto ou manuel), les liens principal et
secondaires, vers quelle alternative le lien principal pointe actuellement,
quelles autres alternatives sont disponibles (et les liens secondaires
associés), et l'alternative actuellement installée qui possède la priorité
la plus élevée.
- --get-selections
-
Affiche tous les noms principaux d'alternatives (ceux qui contrôlent un
groupe de liens) ainsi que leur état (depuis la version 1.15.0). Chaque
ligne comporte jusqu'à trois champs (séparés par une ou plusieurs
espaces). Le premier est le nom de l'alternative, le second est son état
(auto ou manual) et le dernier montre le choix actuel pour
l'alternative (il s'agit d'un nom de fichier et donc peut contenir des
espaces).
- --set-selections
-
Lit la configuration des alternatives sur l'entrée standard, dans le format
utilisé par --get-selections et les configure en conséquence (depuis la
version 1.15.0).
- --query nom
-
Affiche des informations sur le groupe de liens de manière analogue à
--display, mais sous une forme qui peut être analysée automatiquement
(depuis la version 1.15.0, voir la section FORMAT DE REQUÊTE ci-dessous).
- --list nom
-
Affiche toutes les cibles du groupe de liens.
- --config nom
-
Affiche les alternatives disponibles pour un groupe de liens et permet de
choisir interactivement laquelle doit être utilisée. Le groupe de liens est
mis à jour.
- --help
-
Affiche un message d'aide puis quitte.
- --version
-
Affiche le numéro de version puis quitte.
OPTIONS
- --altdir répertoire
-
Donne le répertoire des alternatives, quand il est différent de celui par
défaut.
- --admindir répertoire
-
Donne le répertoire administratif, quand il est différent de celui par
défaut.
- --log fichier
-
Indique le fichier journal (depuis la version 1.15.0), pour utiliser un
fichier différent du fichier par défaut (/var/log/alternatives.log).
- --force
-
Autorise le remplacement ou la suppression de tout fichier installé à la
place d'un lien d'alternative qui doit être créé ou supprimé.
- --skip-auto
-
Passe l'invite de configuration pour les alternatives qui sont correctement
configurées en mode automatique. Cette option n'est pertinente qu'avec
--config ou --all.
- --quiet
-
Do not generate any comments unless errors occur.
- --verbose
-
Produit plus de commentaires sur ce qui est fait.
- --debug
-
Generate even more comments, helpful for debugging, about what is being done
(since version 1.19.3).
CODE DE SORTIE
- 0
-
L'action demandée s'est correctement déroulée.
- 2
-
Des problèmes sont survenus lors de l'analyse de la ligne de commande ou
bien pendant l'exécution de l'action.
ENVIRONNEMENT
- DPKG_ADMINDIR
-
Si cette variable est positionnée et que l'option --admindir n'est pas
précisée, ce répertoire sera utilisé comme répertoire de base pour
l'administration.
FICHIERS
- /etc/alternatives/
-
Le répertoire des « alternatives » par défaut. Peut être remplacé avec
l'option --altdir.
- /var/lib/dpkg/alternatives/
-
Le répertoire administratif par défaut. Peut être remplacé avec l'option
--admindir
FORMAT DE REQUÊTE
Le format de
--query est un format à plat de type RFC822. Il est
constitué de
n + 1 blocs où
n est le nombre d'alternatives disponibles
dans le groupe de liens interrogé. Le premier bloc contient les champs
suivants :
- Name: nom
-
Nom de l'alternative dans le répertoire des alternatives.
- Link: lien
-
Nom générique de l'alternative.
- Slaves: liste-des-liens-secondaires
-
Lorsque cet en-tête est présent, les lignes suivantes contiennent tous
les liens secondaires associés au lien principal de cette alternative, à
raison d'un lien secondaire par ligne. Chaque ligne comporte une espace, le
nom de l'alternative secondaire, une espace et le chemin vers le lien
secondaire.
- Status: état
-
État de l'alternative (auto ou manual).
- Best: meilleur-choix
-
Chemin de la meilleure alternative pour ce groupe de liens. N'est pas
présent si aucune alternative n'est disponible.
- Value: alternative-actuellement-choisie
-
Chemin de l'alternative actuellement choisie. Peut aussi prendre la valeur
spéciale none, utilisée si le lien n'existe pas.
Les autres blocs décrivent les alternatives disponibles dans le groupe de
liens interrogé.
- Alternative: chemin-de-cette-alternative
-
Chemin vers l'alternative de ce bloc
- Priority: valeur-de-la-priorité
-
Valeur de la priorité de cette alternative.
- Slaves: liste-des-liens-secondaires
-
Lorsque ce champ est présent, les lignes suivantes contiennent toutes les
alternatives secondaires associées au lien principal de cette alternative, à
raison d'une alternative secondaire par ligne. Chaque ligne comporte une
espace, le nom de l'alternative secondaire, une espace et le chemin vers
l'alternative secondaire.
Exemple
$ update-alternatives --query editor
Name: editor
Link: /usr/bin/editor
Slaves:
editor.1.gz /usr/share/man/man1/editor.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/editor.1.gz
editor.it.1.gz /usr/share/man/it/man1/editor.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/editor.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/editor.1.gz
Status: auto
Best: /usr/bin/vim.basic
Value: /usr/bin/vim.basic
Alternative: /bin/ed
Priority: -100
Slaves:
editor.1.gz /usr/share/man/man1/ed.1.gz
Alternative: /usr/bin/vim.basic
Priority: 50
Slaves:
editor.1.gz /usr/share/man/man1/vim.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/vim.1.gz
editor.it.1.gz /usr/share/man/it/man1/vim.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
DIAGNOSTICS
Avec l'option
--verbose,
update-alternatives affiche de très
nombreuses informations sur la sortie standard. Quand un problème survient,
update-alternatives envoie des messages d'erreur sur la sortie d'erreur
standard et retourne un état de sortie égal à
2. Ces diagnostics
devraient être simples à comprendre ; si ce n'est pas le cas, veuillez
envoyer un rapport de bogue.
EXEMPLES
Plusieurs paquets fournissent un éditeur de texte compatible avec
vi, par
exemple
nvi et
vim. Celui qui sera utilisé est déterminé par le groupe
de liens
vi, qui comprend des liens pour le programme lui-même et sa page
de manuel.
Pour afficher les paquets disponibles qui fournissent vi et son
paramétrage actuel, on peut utiliser l'action --display :
-
update-alternatives --display vi
Pour choisir une implémentation particulière de vi, on peut utiliser
cette commande en tant que superutilisateur et choisir un nombre dans la
liste :
-
update-alternatives --config vi
Pour retrouver l'implémentation par défaut de vi, on peut utiliser cette
commande en tant que superutilisateur :
-
update-alternatives --auto vi
VOIR AUSSI
ln(1), FHS, le standard pour l'organisation du système de fichiers.
TRADUCTION
Ariel VARDI <
ariel.vardi@freesbee.fr>, 2002.
Philippe Batailler, 2006.
Nicolas François, 2006.
Veuillez signaler toute erreur à <
debian-l10n-french@lists.debian.org>.