コマンドのバージョンの切り替え

2011年12月30日

はじめに

コマンドのバージョンの切り替えについて。

使用マシン

Linux Mint 12

バージョンの切り替え

GCC など、コマンドのバージョンを複数用意して適宜切り替えて使いたい場合がある。その場合、update-alternatives を使う。

update-alternatives の管理下に置く

update-alternatives の管理下に置くには、次のようにする (以後 root で実行)。

# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 46
# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 44

フォーマットは次の通り。

# update-alternatives --install リンク 総称名 選択候補 優先度

これに従属するコマンドも設定できる。

# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 46 \
        --slave /usr/bin/gcov gcov /usr/bin/gcov-4.6 \
        --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 44 \
        --slave /usr/bin/gcov gcov /usr/bin/gcov-4.4 \
        --slave /usr/bin/g++ g++ /usr/bin/g++-4.4

バージョンの切り替え

バージョンの切り替えは次のようにする。

# update-alternatives --config gcc
alternative gcc (/usr/bin/gcc を提供) には 2 個の選択肢があります。

  選択肢    パス            優先度  状態
------------------------------------------------------------
* 0            /usr/bin/gcc-4.6   46        自動モード
  1            /usr/bin/gcc-4.4   44        手動モード
  2            /usr/bin/gcc-4.6   46        手動モード

現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:

バージョンを切り替えると、関連するリンクが変更される。

update-alternatives の管理下からはずす

update-alternatives の管理下からはずす場合は次のようにする。

# update-alternatives --remove gcc /usr/bin/gcc-4.4
# update-alternatives --remove gcc /usr/bin/gcc-4.6

次のように全部消してしまうこともできる。

# update-alternatives --remove-all gcc

おかしくなった場合

いろいろやっていておかしくなった場合、リンクを削除すればよいかもしれない。