Update-alternatives

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Gestion des versions concurrentes d'une commande
Commande update-alternatives
Contexte Debian/Ubuntu — équivalent alternatives sur RHEL/CentOS
Voir aussi Dpkg (mécanisme Debian sous-jacent)

update-alternatives gère les liens symboliques permettant à plusieurs versions ou implémentations d'une même commande (éditeur, JVM, interpréteur Python, MTA…) de cohabiter sur un système, tout en désignant laquelle est utilisée par défaut. Sur RHEL/CentOS, l'outil équivalent s'appelle alternatives mais partage la même syntaxe et le même principe.

Choisir l'alternative active

Cas le plus courant : basculer interactivement entre les alternatives déjà enregistrées pour une commande donnée.

update-alternatives --config editor   # choisir l'éditeur par défaut (vi, nano, vim...)
update-alternatives --config java     # choisir la JVM par défaut

# sur RHEL/CentOS, même usage avec la commande alternatives
alternatives --display mta            # afficher les choix disponibles pour le MTA
alternatives --set mta /usr/sbin/sendmail.postfix   # imposer un choix sans passer par le menu interactif

--config ouvre un menu interactif listant les alternatives déjà enregistrées pour ce nom ; --set impose directement un choix sans interaction, utile dans un script d'installation.

Enregistrer une nouvelle alternative

Avant de pouvoir choisir entre plusieurs versions, chacune doit être déclarée avec --install :

update-alternatives --install <lien> <nom> <chemin> <priorité>

# exemple : deux versions de python enregistrées, la priorité la plus haute gagne en mode auto
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2

<lien> est le chemin générique exposé aux utilisateurs (/usr/bin/python), <nom> l'identifiant interne du groupe d'alternatives, <chemin> le binaire réel visé et <priorité> un entier utilisé en mode automatique (la priorité la plus haute est choisie par défaut tant qu'aucun choix manuel n'a été fait avec --config ou --set).

Lister et consulter

update-alternatives --list python      # toutes les alternatives enregistrées pour ce nom
update-alternatives --display python   # détail : priorités, lien courant, mode auto/manuel

Voir aussi

  • Dpkg — le mécanisme Debian dont update-alternatives fait partie
  • Sur RHEL/CentOS, la commande alternatives reprend la même logique et les mêmes options