
Я установил openjdk-9-jdk:amd64
Ubuntu, и при запуске which javac
он показывает мне мягкую ссылку, ведущую в /etc
каталог:
$ ls -l /usr/bin/javac
lrwxrwxrwx 1 root root 23 kwi 13 08:09 /usr/bin/javac -> /etc/alternatives/javac
Насколько мне известно, в . следует хранить только данные конфигурации /etc
. Почему они javac
там хранятся и следует ли мне переместить этот исполняемый файл?
решение1
Если вы посмотрите, то /etc/alternatives
увидите, что он не содержит исполняемых файлов, а содержит больше символических ссылок; например
$ ls -l /etc/alternatives/javac
lrwxrwxrwx 1 root root 43 Sep 20 2016 /etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
Вот как реализуются альтернативы: «двоичный» файл в пути — это символическая ссылка на альтернативу в /etc/alternative
, которая сама по себе является символической ссылкой на выбранный целевой двоичный файл. Этот выборявляетсяДанные конфигурации, поэтому /etc
они вполне подходят. (Альтернативы можно использовать не только для двоичных файлов, поэтому вы также найдете там страницы руководства и т. д.)