
- コンパクトで軽量な日本語ディストリビューション -
update-alternatives コマンドの利用方法を扱います。
現在の設定を確認する方法、切り替える方法を扱います。
登録と削除に関しては実際には次節で扱います。
--help や --version というオプションを使うとバージョン情報とヘルプメッセージを表示します。
$ /sbin/update-alternatives --help--verbose というオプションを使うと、メッセージが詳細に表示される場合があります。
--verbose は、他のオプションと合わせて利用します。
選択候補を表示するには --list というオプションを用います。
$ /sbin/update-alternatives --list 総称名これは変更するのではなく表示するだけなので一般ユーザーで実行できます。
$ /sbin/update-alternatives --list gcc/usr/bin/gcc-3.3.6 /usr/bin/gcc-2.95.3 /usr/bin/gcc-4.0.2
総称名 gcc に対して選択候補が 3つあることがわかります。
現在の設定を確認するには --display というオプションを用います。
$ /sbin/update-alternatives --display 総称名これも一般ユーザーで実行できます。
$ /sbin/update-alternatives --display gcc1 gcc - status is auto. 2 link currently points to /usr/bin/gcc-3.3.6 3 /usr/bin/gcc-3.3.6 - priority 30 4 slave c99: /usr/bin/c99-3.3.6 5 slave cc: /usr/bin/gcc-3.3.6 6 slave i386-vine-linux-gcc: /usr/bin/i386-vine-linux-gcc-3.3.6 7 slave c89: /usr/bin/c89-3.3.6 8 /usr/bin/gcc-2.95.3 - priority 15 9 slave cc: /usr/bin/gcc-2.95.3 10 /usr/bin/gcc-4.0.2 - priority 20 11 slave c99: /usr/bin/c99-4.0.2 12 slave cc: /usr/bin/gcc-4.0.2 13 slave i386-vine-linux-gcc: /usr/bin/i386-vine-linux-gcc-4.0.2 14 slave c89: /usr/bin/c89-4.0.2 15 Current `best' version is /usr/bin/gcc-3.3.6.
説明のために左端に行番号をつけています。
1行目に総称名 gcc があり、mode の表示があります。status is auto. となっているので、優先度の一番高いものを自動的に選択するという状態です。
2行目に link currently points to /usr/bin/gcc-3.3.6 とあり、gcc-3.3.6 が選択されていることがわかります。
manual モードで、選択候補が無いという場合には、 link currently absent となります。
3,8,10行に優先度(priority)があり、gcc-3.3.6 が 30 , gcc-2.95.3 が 15 , gcc-4.0.2 が 20 となっていることがわかります。
また、一番下の15行目に Current `best' version is /usr/bin/gcc-3.3.6. とあり、ここでも、優先度が一番高いのは gcc-3.3.6 であるということがわかります。
4〜7,9,11〜14行の slave で指定されているものは、スレーブリンクです。(参照 セクション IV.28.2.3 - リンクグループ(マスターリンクとスレーブリンク))
その上の 3,8,10行にある /usr/bin/gcc-3.3.6 , /usr/bin/gcc-2.95.3 , /usr/bin/gcc-4.0.2 が マスターリンク です。
マスターリンクである /usr/bin/gcc-4.0.2 を選択すると、スレーブリンクである c99,cc,i386-vine-linux-gcc,c89 も選択されたことになり、まとめて切り替えることができます。
ここから先の操作は スーパーユーザ(root) で行う必要があります。
優先度が高いものを自動的に利用する、というのではなく選択するには、--config や --all や --set というオプションを用います。
優先度に従い自動的に切り替えるように戻すには、--auto というオプションを用います。
rpmパッケージのインストール時に設定された alternatives は、パッケージのアンインストール時に manual( mode) から auto(matic mode) に切り替える処理が行われる場合がありますが、自分で alternatives として登録した場合などは、ファイルが削除されたりしてもモードの切り替えは行われないので、必要に応じて auto に戻したり、どれかを選択したりしてください。
対話的に設定するには、--config というオプションを用います。
# /sbin/update-alternatives --config 総称名
/usr/bin/gcc-3.3.6 ではなく /usr/bin/gcc-4.0.2 を利用するようにしてみます。
# /sbin/update-alternatives --config gcc
There are 3 alternatives which provide `gcc'.
Selection Alternative
-----------------------------------------------
*+ 1 /usr/bin/gcc-3.3.6
2 /usr/bin/gcc-2.95.3
3 /usr/bin/gcc-4.0.2
Press enter to keep the default[*], or type selection number: と表示されます。
* と書かれているものが現在選択されているものです。そのまま利用するのであれば Enter と入力します。この場合には モード は変更されません。
3 /usr/bin/gcc-4.0.2 とあるので、3 Enter と入力します。
Using `/usr/bin/gcc-4.0.2' to provide `gcc'.
と表示されて設定変更が完了しました。
$ /sbin/update-alternatives --display gcc
gcc - status is manual. link currently points to /usr/bin/gcc-4.0.2 /usr/bin/gcc-3.3.6 - priority 30 slave c99: /usr/bin/c99-3.3.6 slave cc: /usr/bin/gcc-3.3.6 slave i386-vine-linux-gcc: /usr/bin/i386-vine-linux-gcc-3.3.6 slave c89: /usr/bin/c89-3.3.6 /usr/bin/gcc-2.95.3 - priority 15 slave cc: /usr/bin/gcc-2.95.3 /usr/bin/gcc-4.0.2 - priority 20 slave c99: /usr/bin/c99-4.0.2 slave cc: /usr/bin/gcc-4.0.2 slave i386-vine-linux-gcc: /usr/bin/i386-vine-linux-gcc-4.0.2 slave c89: /usr/bin/c89-4.0.2 Current `best' version is /usr/bin/gcc-3.3.6.
自分で選択したので一行目が status is manual となりました。
二行目で link currently points to /usr/bin/gcc-4.0.2 となっていることが確認できます。
--all とすると、すべての 総称名 について順に --config で設定できます。
# /sbin/update-alternatives --all
Enter だけ入力していけば、何も変更せずに終了できるので、どんな 総称名 と選択候補 があるのか確認することもできます。
対話的に決定するのではなく、直接指定するには --set というオプションを用います。
# /sbin/update-alternatives --set 総称名 選択候補
# /sbin/update-alternatives --set gcc /usr/bin/gcc-4.0.2
Using `/usr/bin/gcc-4.0.2' to provide `gcc'.
と表示され /usr/bin/gcc-4.0.2 が選択されたことがわかります。
manual( mode) から auto(matic mode) に戻すには --auto というオプションを用います。
# /sbin/update-alternatives --auto 総称名
# /sbin/update-alternatives --auto gcc
特に何も表示されません。
--verbose オプションを使うと次のように表示されます。
# /sbin/update-alternatives --verbose --auto gcc
Setting up automatic selection of gcc. Checking available versions of gcc, updating links in /etc/alternatives ... (You may modify the symlinks there yourself if desired - see `man ln'.) Updating gcc (/usr/bin/gcc) to point to /usr/bin/gcc-3.3.6. Updating c99 (/usr/bin/c99) to point to /usr/bin/c99-3.3.6. Updating cc (/usr/bin/cc) to point to /usr/bin/gcc-3.3.6. Updating i386-vine-linux-gcc (/usr/bin/i386-vine-linux-gcc) to point to /usr/bin/i386-vine-linux-gcc-3.3.6. Updating c89 (/usr/bin/c89) to point to /usr/bin/c89-3.3.6.