Question Que fait exactement update-alternatives?


Quelle est la commande update-alternatives utilisé pour?

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?


84
2017-12-27 11:13


origine


Vous pouvez aussi utiliser sudo update-alternatives --config java et javac et javaws choisir entre les versions installées. - Shayan


Réponses:


Il met à jour les liens dans /etc/alternatives signaler le programme à cette fin. Il y a beaucoup d'exemples, comme x-www-browser, editor, etc., qui sera lié au navigateur ou à l'éditeur de votre choix. Certains scripts ou outils système peuvent vous demander de modifier un fichier manuellement (par exemple, un conflit de configuration dans dpkg) et ils examineront les alternatives pour vous donner l'éditeur de choix. Pour java, c'est 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, le régulier /usr/bin les binaires 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 non PATH doit être modifié. Il utilise uniquement des liens symboliques.


62
2017-12-27 11:19



En d'autres termes, je peux saisir une seule commande et cela m'invitera à faire des choix. C'est le seul avantage supplémentaire par rapport à la définition d'un chemin à suivre. Disons aussi que j'ai un autre fournisseur de Java également installé Comment pourrais-je mettre à jour Java pour pointer les deux fournisseurs différents? - Developer Android
Vous ne pouvez pas montrer les deux comme vous décrivez. Le but de tout cela est d'avoir un seul pointeur sur l'implémentation de l'entrée comme dans l'exemple donné. Sans questions Et tout des candidats devrait fonctionner - il devrait juste être une préférence de l'administrateur. Et encore: ça n'a rien à voir avec PATHs. - gertvdijk
D'accord. Cela clarifie les choses. Je sais que je reviens sur les chemins mais je veux juste comprendre la différence entre eux. Dans le cas d'un chemin, nous devons spécifier explicitement l'emplacement, mais dans ce cas, il ne s'agit que de liens symboliques, de sorte que lorsque nous tapons java, il recherche d'abord / etc / alternatives. Ou ai-je tort de faire cette hypothèse? - Developer Android