
Ich habe es auf Ubuntu installiert openjdk-9-jdk:amd64
und beim Ausführen which javac
wird mir ein Softlink angezeigt, der zum /etc
Verzeichnis führt:
$ ls -l /usr/bin/javac
lrwxrwxrwx 1 root root 23 kwi 13 08:09 /usr/bin/javac -> /etc/alternatives/javac
Soweit ich weiß, sollten nur Konfigurationsdaten in gespeichert werden /etc
. Warum werden sie javac
dort gespeichert und sollte ich diese ausführbare Datei verschieben?
Antwort1
Wenn Sie sich das ansehen, /etc/alternatives
werden Sie feststellen, dass es keine ausführbaren Dateien enthält, sondern weitere symbolische Links; zum Beispiel
$ 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
So werden Alternativen implementiert: Die „Binärdatei“ im Pfad ist ein Symlink zur Alternative in /etc/alternative
, die wiederum ein Symlink zur gewählten Zielbinärdatei ist. Diese AuswahlIstKonfigurationsdaten, /etc
ist also vollkommen angemessen. (Alternativen können für mehr als nur Binärdateien verwendet werden, daher finden Sie dort auch Manpages usw.)