update-alternativesの使い方
update-alternativesとは
Linuxを使う時、シンボリックリンクを使う時があります。例えばgccでは、生成したバイナリを動かす環境に応じて、バージョンを使い分ける必要があります。この時、毎回必要なバージョン以外のgccを削除することもできますが、シンボリックリンクを使ってバージョン管理をするのが便利です。lnコマンドを使ってシンボリックリンクを張ることもできますが、管理対象が別のパッケージに依存しており、かつそのパッケージのバージョンも変更しないといけないときは面倒です。update-alternativesコマンドはそうした時に使う、目的とするパッケージとそれに従属するパッケージのシンボリックリンクを、一括で切り替えることができるコマンドです。
Fig.1 update-alternativesコマンドのイメージ
update-alternativesコマンドの使い方
update-alternativesの主要なオプションは、
・--install
シンボリックリンクの作成・登録
・--slave
installオプションで作成したシンボリックリンクに従属するシンボリックリンクの作成・登録
・--set
使用するシンボリックリンクの設定(コマンド)
・--config
使用するシンボリックリンクの設定(一覧から選択)
・--display
現在選択されているシンボリックリンクの内容を表示
の5つがあります。下記ではそれぞれのオプションについて説明します。
--install
installオプションを使う時は下記の様に記載します。
sudo update-alternatives --install <作成するシンボリックのパス> <グループ名> <実体へのパス> <優先度>
例えばgccの管理を行う時は、
作成するシンボリックのパス = /usr/bin/gcc
グループ名 = gcc
実体へのパス = /usr/bin/gcc-4.8(管理したいバージョンのパスを設定)
優先度 = 10(任意の数字)
とします。
--slave
slaveオプションを使う時は、下記の様にinstallオプションを登録する時に、関連するシンボリックリンクを全て記載して使います。
sudo update-alternatives --install <作成するシンボリックのパス> <グループ名> <実体へのパス> <優先度>\
--slave <作成するシンボリックのパス> <グループ名> <実体へのパス>\
・・・・・・・・
--slave <作成するシンボリックのパス> <グループ名> <実体へのパス>
例えばgccと連動してg++のバージョンを変更したい場合は、
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10\
--slave /usr/bin/gcc g++ /usr/bin/g++-4.8
として実行する。
--set
コマンドライン上でグループ名をタイプした時、呼び出される実体が、グループの中のどれを指すか、下記の様にコマンドラインで指定する。
sudo update-alternatives --install <グループ名> <実体へのパス>
例えばgccとタイプした時、gccの4.8を使いたい場合、
sudo update-alternatives --install gcc /usr/bin/gcc-4.8
として実行する。