Что это за команда update-alternatives
используется для?
Возьмем этот пример:
sudo update-alternatives --install /usr/bin/java java /usr/local/java/jre1.7.0_09/bin/java 1
Что он делает? Чем это отличается от добавления jdk в path?
Допустим, я выполнил команду. Как бы я вернулся в исходное состояние?
Он обновляет ссылки в /etc/alternatives
чтобы указать на программу для этой цели. Есть много примеров, таких как x-www-browser
, editor
и т.д., Которые будут ссылаться на браузер или редактор по вашему выбору. Некоторые скрипты или системные инструменты могут потребовать, чтобы вы отредактировали файл вручную (например, конфликт конфигурации в dpkg
), и они рассмотрят альтернативные варианты, чтобы предоставить вам редактора по выбору. Для java
, это среда выполнения Java - Oracle, OpenJRE и т.д.
Ссылки в /etc/alternatives
это просто символические ссылки. Вы можете увидеть их, например, с помощью
ls -l /etc/alternatives
Более того, регулярные /usr/bin
двоичные файлы также являются символическими ссылками. например.:
ls -l /usr/bin/java lrwxrwxrwx 1 root root 22 Aug 14 10:33 /usr/bin/java -> /etc/alternatives/javals -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
Итак, нет PATH
должен быть изменен. Он просто использует символические ссылки.
Хотя ответ @ gertvdjik является хорошим объяснением того, как альтернативы работают на более низком уровне, в нем явно не указано, как вернуть исходное состояние.
Мне проще использовать соответствующий графический интерфейс galternatives
который доступен в виде пакета. Чтобы установить его, просто запустите:
sudo apt-get install galternatives
Тогда управлять альтернативами становится намного проще. В частности, для java у вас есть много вспомогательных двоичных файлов, которые вам придется обновлять, и быстрее просматривать их в графическом интерфейсе.
Вы также можете использовать “sudo update-alternatives --config java” и “javac” и “javaws” для выбора между установленными версиями.