alternativeによるリンクの切り替え

alternatives で管理されるアプリケーションに、新しいバージョンを追加する。

alternatives に追加
# alternatives --install /usr/bin/java java /usr/local/java/bin/java 10

引数は、順に 管理されているリンク/管理対象の名前/追加するプログラムの実体/優先度。
優先度は大きいものほど優先と扱われるっぽい。

リンク変更
# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/share/java/libgcj-java-placeholder.sh
   2           /usr/local/java/bin/java

Enter to keep the current selection[+], or type selection number: 2

--configオプションに管理対象の名前を指定すると選択肢が現れるので、先ほど追加したものを選択。

確認
# alternatives --display java
java - status is manual.
 link currently points to /usr/local/java/bin/java
/usr/share/java/libgcj-java-placeholder.sh - priority 100
 slave rmiregistry: /usr/bin/grmiregistry
 slave rmiregistry.1.gz: /usr/share/man/man1/grmiregistry.1.gz
/usr/local/java/bin/java - priority 10
 slave rmiregistry: (null)
 slave rmiregistry.1.gz: (null)
Current `best' version is /usr/share/java/libgcj-java-placeholder.sh.