OS/Linux/man

update-alternatives

起動するコマンドのバージョンを切り替えるツール java や gcc のバージョンなど切り替えたい場合に便利なツールです.

以下 java を例に記述しています.

現在の設定を見る

/usr/sbin/update-alternatives --display java

設定されていれば以下のように表示されます.

java - status is auto
 link currently points to /usr/local/share/java5/jre/java
/usr/local/share/java5/jre/bin/java - priority 500
/usr/local/share/java6/jre/bin/java - priority 600
 slave java.1.gz: /usr/local/share/java6/jre/man/man1/java.1.gz
Current `best' version is /usr/local/share/java6/jre/bin/java

設定する

# update-alternatives --install [リンク名] [名前] [実際のパス] [優先度]\
--slave [リンク名] [名前] [使用するバージョン]

※優先度は値が小さいほど高優先 ※ --slave は 0 ~ 複数記述可能. 関連コマンドを記述しておくとまとめて切り替えることが可能になる.

例)

# update-alternatives --install /usr/bin/java java \
/usr/local/share/java5/jre/bin/java

設定を削除する

# update-alternatives --remove [名前] [実際のパス]

例)

# update-alternatives --remove java /usr/local/share/java6/jre/bin/java

切り替える

# update-alternatives --config java

次のようなメニューがでるので使用したバージョンを入力する

There are 2 alternatives which provide `java'
  Selection    Alternative
-----------------------------------------------
          1    /usr/local/share/java5/jre/bin/java
*+        2    /usr/local/share/java6/jre/bin/java

Press enter to keep the default[*], or type selection number:
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS