web-dev-qa-db-fra.com

Que fait exactement `update-alternatives`?

À quoi sert la commande update-alternatives?

Prenons cet exemple:

Sudo update-alternatives --install /usr/bin/Java java /usr/local/Java/jre1.7.0_09/bin/Java 1

Qu'est ce que ça fait? En quoi est-ce différent d’ajouter jdk au chemin?

Disons que j'ai exécuté la commande. Comment pourrais-je revenir à l'état d'origine?

95
Developer Android

Il met à jour les liens dans /etc/alternatives pour qu'il pointe vers le programme à cette fin. Il existe de nombreux exemples, tels que x-www-browser, editorname__, etc., qui renverront au navigateur ou à l'éditeur de votre choix. Certains scripts ou outils système peuvent vous demander d’éditer un fichier manuellement (par exemple, un conflit de configuration dans dpkgname__) et ils examineront les alternatives pour vous donner l’éditeur de choix. Pour Javaname__, il s'agit de l'environnement d'exécution Java: Oracle, OpenJRE, etc.

Les liens dans /etc/alternatives ne sont que des liens symboliques. Vous pouvez les voir en utilisant par exemple

ls -l /etc/alternatives

De plus, les binaires /usr/bin habituels sont aussi des liens symboliques. Par exemple.:

ls -l /usr/bin/Java
  lrwxrwxrwx 1 root root 22 Aug 14 10:33 /usr/bin/Java -> /etc/alternatives/Java
ls -l /etc/alternatives/Java
  lrwxrwxrwx 1 root root 46 Aug 14 10:33 /etc/alternatives/Java -> /usr/lib/jvm/Java-6-openjdk-AMD64/jre/bin/Java

Donc, aucuns PATHdoit être modifié. Il utilise simplement des liens symboliques.

71
gertvdijk