#linux #java #openjdk
Что означает auto mode в update-alternatives --config java? Вот, что нашел в man, но это ситуацию не особо разъяснило. automatic mode When a link group is in automatic mode, the alternatives system ensures that the links in the group point to the highest priority alternative appropriate for the group. manual mode When a link group is in manual mode, the alternatives system will not make any changes to the system administrator's settings.
Ответы
Ответ 1
https://help.ubuntu.com/community/Java вкратце, это механизм выбора пакетов по приоретам (для апдейтов, допустим). Ну, например, для java cуществуют по крайней мере 4 возможные для установки по дефолту реализации: OpenJDK Oracle Java IBM Java GNU Compiler автоматический режим выберет ту реализацию, которая считается системой "самой правильной" ручной - оставит ту, которую ты указал изначально. я бы советовал использовать автоматическую, а ручной режим выбирать только если ты точно знаешь, что твой софт не работает, например, с OpenJDK, а только с Oracle JavaОтвет 2
что такое система альтернатив, кратко, но неплохо, изложено в википедийной статье, с которой я рекомендую ознакомиться прежде чем читать дальше. в чём смысл auto mode и manual mode, попробую объяснить на примере программы vim. поставили вы свежую систему, и в ней этой программы нет вообще. установили вы пакет vim. в него входит (в том числе) файл /usr/bin/vim.basic, а в послеустановочном скрипте (с помощью программы update-alternatives) этот файл регистрируется как альтернатива для файла /usr/bin/vim с приоритетом 30 (почему именно 30? ну, так сопровождающие пакетов решили). и получается такая цепочка ссылок: /usr/bin/vim → /etc/alternatives/vim → /usr/bin/vim.basic установили вы после этого пакет vim-gtk, в который входит (в том числе) файл /usr/bin/vim.gtk, а в послеустановочном скрипте этот файл регистрируется как альтернатива тому же самому файлу /usr/bin/vim, но с приоритетом 50. и так как набор альтернатив для файла /usr/bin/vim в данный момент находился в «авто-режиме» (auto mode), то программой update-alternatives (которая была вызвана в послеустановочном скрипте пакета vim-gtk) текущей альтернативой выбирается та, которая имеет больший приоритет, т.е., /usr/bin/vim.gtk. и получается чуть иная цепочка ссылок: /usr/bin/vim → /etc/alternatives/vim → /usr/bin/vim.gtk а вот если бы перед установкой пакета vim-gtk вы запустили sudo update-alternatives --config vim и вручную выбрали бы вариант /usr/bin/vim.basic (и неважно, что он был одним-единственным на тот момент), то набор альтернатив переключился бы на «ручной режим» (manual mode), и после установки пакета vim-gtk переключения альтернативы бы не произошло, осталась актуальной старая цепочка ссылок: /usr/bin/vim → /etc/alternatives/vim → /usr/bin/vim.basic где же фиксируются все эти приоритеты, возможные альтернативы, текущий режим (auto/manual) для, например, программы vim? в файле /var/lib/dpkg/alternatives/vim: manual /usr/bin/vim /usr/bin/vim.basic 30 /usr/bin/vim.gtk 50 первая строка — режим (auto или manual), вторая строка — собственно файл, для которого дальше перечислены альтернативы со своими приоритетами. а как вернуть обратно «авто-режим»? $ sudo update-alternatives --auto vim стоит отметить, что «авто-режим» «включается» по умолчанию при регистрации самой первой альтернативы для файла. а «ручной режим» «включается» после того, как с помощью опции --config имя программы update-alternatives вы вручную указали использовать какую-то из альтернатив. (вообще, конечно, можно и без update-alternatives, поменть первую строку в файле /var/lib/dpkg/alternatives/имя).
Комментариев нет:
Отправить комментарий