
Ubuntu にインストールしましたがopenjdk-9-jdk:amd64
、実行すると、ディレクトリ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
完全に適切です。(代替手段はバイナリ以外にも使用できるため、そこにマニュアルページなども見つかります。)