Alternativesコマンド

提供: Astarisk Works Wiki

Linuxでは一つのコマンドに複数の実装がある場合がある。

たとえば、mtaやjavaなど。 どれをデフォルトで使うかを設定するのにはalternativesコマンド(fedora系)もしくはupdate-alternativesコマンド(Ubuntu系)を使う。

Javaの場合、次の通り

> sudo update-alternatives --config java
> There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-sun/jre/bin/java       63        auto mode
  1            /usr/lib/jvm/java-1.5.0-sun/jre/bin/java   53        manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number:

選択したい番号を押すとそれが使われるようにシンボリックリンクが作成される。

alternativesに項目を追加する

パッケージでインストールしたものは自動的に選択できるリストに入るが、そうでないものは自分で足す必要がある。

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.8 200 --slave /usr/bin/rake rake /usr/bin/rake1.8 --slave /usr/bin/erb erb /usr/bin/erb1.8 --slave /usr/bin/testrb testrb /usr/bin/testrb1.8  
sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 150 --slave /usr/bin/rake rake /usr/bin/rake1.9.1 --slave /usr/bin/erb erb /usr/bin/erb1.9.1 --slave /usr/bin/testrb testrb /usr/bin/testrb1.9.1
sudo update-alternatives --install /usr/bin/irb irb /usr/bin/irb1.8 200
sudo update-alternatives --install /usr/bin/irb irb /usr/bin/irb1.9.1 150
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.8 150 --slave /etc/bash_completion.d/gem bash_completion_gem /etc/bash_completion.d/gem1.8 --slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem1.8.1.gz
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.9.1 100 --slave /etc/bash_completion.d/gem bash_completion_gem /etc/bash_completion.d/gem1.9.1 --slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem1.9.1.1.gz

参考:コマンドを便利に切り替える update-alternatives 使いこなし講座 | イージーネット Tech Blog

個人用ツール