Что именно делает "обновление-альтернативы"?

Что это за команда update-alternatives используется для?

Возьмем этот пример:

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

Что он делает? Чем это отличается от добавления jdk в path?

Допустим, я выполнил команду. Как бы я вернулся в исходное состояние?

Попробуй пройти бота-учителя. Он научит тебя Linux в виде игры: Курсы Linux и DevOPS Бесплатный урок

Попробуй пройти бота-учителя. Он научит тебя Linux в виде игры: Курсы Linux и DevOPS Бесплатный урок

Он обновляет ссылки в /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 должен быть изменен. Он просто использует символические ссылки.

Попробуй пройти бота-учителя. Он научит тебя Linux в виде игры: Курсы Linux и DevOPS Бесплатный урок

Хотя ответ @ gertvdjik является хорошим объяснением того, как альтернативы работают на более низком уровне, в нем явно не указано, как вернуть исходное состояние.

Мне проще использовать соответствующий графический интерфейс galternatives который доступен в виде пакета. Чтобы установить его, просто запустите:

sudo apt-get install galternatives

Тогда управлять альтернативами становится намного проще. В частности, для java у вас есть много вспомогательных двоичных файлов, которые вам придется обновлять, и быстрее просматривать их в графическом интерфейсе.

Вы также можете использовать “sudo update-alternatives --config java” и “javac” и “javaws” для выбора между установленными версиями.