Provided by:
dpkg_1.14.24ubuntu2_i386 
NAME
update-alternatives -
シンボリックリンクを管理してデフォルトのコマンドを決定する
式
update-alternatives [options] command
明
update-alternatives は Debian の alternatives
システムを成すシンボリックリンクを生成・削除・管理したり、リンクの情報を表示したりする。
同じ機能を (あるいは似たような機能を)
持つ複数のプログラムを一つのシステムにインストールし、共存させることがで-
る。例えば多くのシステムでは、複数のテ-
ストエディタを共存させている。これにより、システムのユーザは好みに応じて別々のエディタを使うことがで-
るようになる。しかしプログラムにとっては、特に指定がなかったと-
にどのエディタを起動すれば良いのかという、なかなか難しい問題を抱えることになる。
Debian の alternatives
システムは、この問題を解決するためのものである。同じ機能を提供し、互いに置-
換え可能な全てのファイルは、ファイルシステム中の「一般名 (generic
name)」を共佑垢襦その一般名が実際にどのファイルを参照するかは、 alter-
natives システムとシステム管理者とが決定する。例えば、テ-
ストエディタである ed(1) と nvi(1)
の両方がシステムにインストールされていたとすると、一般名である
/usr/bin/editor は、デフォルトでは /usr/bin/nvi
を参照する。システム管理者はこれを上書い掘 /usr/bin/ed
を参照させるようにすることもで-
る。こうすると、その後明示的なリクエストがなければ、 alternatives
システムはその設定を変更しない。
一般名は、選ばれた「選択肢 (alterna-
tive)」への直接のシンボリックリンクではなく、 alternatives
ディレクトリにある名前へのシンボリックリンクになっている。そしてその名前が実際に参照されるファイルへのシンボリックリンクになっている。こうなっている理由は、システム管理者の変更が
/etc
ディレクトリ以下で行われるようにするためである。なぜこうするのが良いかについては
FHS に説明がある。
置-
換え可能な一群のファイル中のどれかを含むパッケージがインストール・変更・削除されると、
update-alternatives が呼ばれ、そのファイルに対する alternatives
システムの内部情報を更新する。 update-alternatives は、通常 Debian
パッケージの postinst または prerm スクリプトから呼び出される。
複数の選択肢を同期させ、グループとして変更すると便利なことが多い。例えば
vi(1)
エディタのいろいろな派生システムが同時にインストールされていたとすると、
/usr/share/man/man1/vi.1 が参照する man ページは、 /usr/bin/vi
が参照する実行ファイルに対応しているべい任△蹐Α update-alternatives
は、 master リンクと slave リンクによってこれを取り扱う。 master
が変更されると、それに関連づけされた各 slave も同時に変更される。 mas-
ter リンクとそれに関連づけされた slave とは、 _
を形成する。
各リンクグループは、いかなる時点においても、 automatic または manual の
2 つのモードのいずれかにある。グループが automatic
モードにある場合は、パッケージのインストール・削除の際にリンクを更新するかどうか/どのように更新するかは、
alternatives システムが自動的に決定する。 manual モードでは、 alterna-
tives
システムはリンクを変更しない。システム管理者が行った決定がずっと保存される。
リンクグループは、システムに導入されると、まず automatic
モードになる。システム管理者がその設定を変更すると、次に update-alter-
natives がリンクグループに対して実行されたと-
に変更が認識され、そのリンクグループは自動的に manual
モードに切り換わる。
各選択肢は priority 属世鮖っている。リンクグループが automatic
モードにあるとい蓮 priority
のもっとも高いものが、そのグループのメンバーが参照する選択肢になる。
--config オプションを用いると、 update-alternatives は与えられた master
リンクのリンクグループに対応する選択肢をすべてリストする。現在選択されているものには
'*' が、もっとも priority の高いものには '+'
マークがつく。そしてそのリンクグループの選択を問い合わせるプロンプトが表示される。ここで変更を行うと、その一般名は
auto モードではなくなる。 automatic 状態に戻すには、 --auto
オプションを用いる必要がある。
非対話的に設定をしたい場合は --set
オプションを代わりに使用する(以下を参照)。
Different packages providing the same file need to do so cooperatively.
That is - the usage of update-alternatives is mandatory for all
involved packages in such case - it is not possible to override some
file in a package that does not employ the update-alternatives mecha-
nism.
語
update-alternatives
の動作は極めて複雑なので、ここでいくつか特殊な用語を説明し、動作の理解の助けとしたい。
一般名 (generic name)
/usr/bin/editor のような名前。 alternatives
システムによって同様の機能を持つ複数のファイルのどれかひとつを参照する。
symlink
特に他に指定がなければ、これは alternatives
ディレクトリ内のシンボリックリンクを意味する。システム管理者が調整の対象とするものである。
選択肢 (alternative)
ファイルシステム中の特定のファイル。 alternatives
システムによって、一般名からアクセスされるようにでい襦
alternatives ディレクトリ
symlink を保持するディレクトリ。デフォルトは /etc/alternatives。
administrative ディレクトリ
update-alternatives
の状態情報を保持するディレクトリ。デフォルトは
/var/lib/dpkg/alternatives。
リンクグループ
関連する symlink のセット。グループごと更新するためのもの。
master リンク
リンクグループに属するリンクで、グループの他のリンクの設定を決定するもの。
slave リンク
リンクグループに属するリンクで、 master
リンクの設定によって制御されるもの。
automatic モード
リンクグループが automatic モードにあると-
は、そのグループに対応しており、かつもっとも高い priority
を持つ選択肢をグループ内の各リンクが参照する。この調整は alter-
natives システムが自動的に行う。
manual モード
リンクグループが manual モードにあるとい蓮 alternatives
システムはシステム管理者の設定を一切変更しない。
ド
--install genname symlink altern priority [--slave genname symlink
altern]...
選択肢のグループをシステムに追加する。 genname は master
リンクの一般名・ symlink はその symlink の名前・ altern
はここで導入される master
リンクに対応した選択肢、である。--slave
オプションに続く引数は、alternatives ディレクトリでの一般名と
slave リンクの選択肢である。 --slave オプションと、それにに続く
3 つの引数のセットは、 0 個以上いくつでも指定してよい。
指定した master の symlink が既に alternatives システムの-
録に存在していると、与えられた情報はそのグループに対する新たな選択肢のセットとして追加される。そうでなければ、新しいグループとして、auto-
matic モードにして、この情報に追加する。グループが automatic
モードにあり、新たに追加された選択肢の priority
がそのグループに対してインストールされている他の選択肢のものより高いと-
には、 symlink
は新たに追加された選択肢を参照するように更新される。
--set name path
プログラム path を name の選択肢として設定する。 --config
と同等だが、こちらは非対話的であるため、スクリプト向けである。
--remove name path
(master の) 選択肢とそれに関連する全ての slave
リンクを削除する。 name は alternatives
ディレクトリ中の名前であり、 path は name のリンク先に指定で-
る、絶対パスでのファイル名である。 name が実際に path
にリンクされている場合には、 name
は他の適切な選択肢を参照するよう更新される。あるいはそのような選択肢が残っていなければ削除される。関連する
slave リンクも対応して更新 (削除) される。 name が現在その path
を参照していなければ、リンクの変更は行われない。その選択肢の情報が削除されるだけである。
--remove-all name
すべての選択肢と、それに関連するすべての slave
リンクを削除する。 name は、alternative
ディレクトリの名前である。
--all --config をすべての選択肢について呼び出す。
--auto link
master の symlink link を automatic
モードに変更する。この処理を行う際には、この master
リンクと対応する各 slave は、現在インストールされている alteran-
tive のうち、もっとも priority
の高いものを参照するように更新される。
--display link
link を master
リンクとするリンクグループの情報を表示する。表示される情報は、グループのモード
(auto か manual か)・その symlink の現在の参照先・他に alterna-
tives (とそれに対応した slave altarnative)
があるかどうか・現在インストールされている選択肢のうち、もっとも
priority の高いもの、である。
--list link
リンクグループのすべてのターゲットを表示する。
--config link
リンクグループの利用可能なすべての選択肢を表示し、対話的に選択肢の
1 つを選べるようにする。リンクグループは更新され、 auto
モードではなくなる。
--help Show the usage message and exit.
--version
Show the version and exit.
--altdir directory
alternatives ディレクトリをデフォルトから変えたいとい忙慊蠅垢襦
--admindir directory
administrative ディレクトリをデフォルトから変えたいと-
に指定する。
--verbose
update-alternatives
が行っている作業に付いて、より詳細なコメントを生成する。
--quiet
エラー以外のコメントを出さない。このオプションはまだ実装されていない。
ル
/etc/alternatives/
デフォルトの alternatives ディレクトリ。 --altdir
オプションによって変更でい襦
/var/lib/dpkg/alternatives/
デフォルトの administration ディレクトリ。 --admindir
オプションによって変更でい襦
0 リクエストされたアクションが正しく実行された。
2 コマンドラインの解釈を行うとい、アクションを実行すると-
に問題が起こった。
DIAGNOSTICS
update-alternatives
は、動作の最中に、いま何をやっているかを逐一標準出力にしゃべり続ける。問題が起-
ると、 update-alternatives
はエラーメッセージを標準エラー出力に出力し、終了ステータス 2
を返す。これらの診断メッセージは、読めばわかるはずである。もしわからなければ、バグとして報告して欲しい。
例
There are several packages which provide a text editor compatible with
vi, for example nvi and vim. Which one is used is controlled by the
link group vi, which includes links for the program itself and the
associated manpage.
vi を提供するパッケージとその現在の設定を表示するには、 --display
アクションを使う。
update-alternatives --display vi
特定の vi 実装を選ぶには、root
としてこのコマンドを実行し、そして一覧から数字を選ぶ。
update-alternatives --config vi
vi 実装の選択を自動的に行なうように戻すには、root
としてこのコマンドを実行する。
update-alternatives --auto vi
グ
バグを見つけたら、 Debian
のバグ追跡システムを使ってレポートして欲しい。それが無理なら、著者に直接電子メールで送って欲しい。
もし update-alternatives の動作とこのマニュアルページの-
述に矛盾があれば、実装か文書、どちらかのバグである。レポートをお願いしたい。
AUTHOR
Copyright (C) 1995 Ian Jackson
This is free software; see the GNU General Public Licence version 2 or
later for copying conditions. There is NO WARRANTY.
This manual page is copyright 1997,1998 Charles Briscoe-Smith.
This is free documentation; see the GNU General Public Licence version
2 or later for copying conditions. There is NO WARRANTY.
ln(1), FHS, the Filesystem Hierarchy Standard.
関戸 幸一 <sekido@mbox.kyoto-inet.or.jp>. 鍋谷 栄展
<nabe@debian.or.jp>. 倉澤 望 <nabetaro@debian.or.jp>. 石川睦
<ishikawa@linux.or.jp>. 瓜文敏 <ukai@debian.or.jp>. 喜瀬浩
<kise@fuyuneko.jp>. 中野武雄 <nakano@apm.seikei.ac.jp>. 喜瀬浩
<kise@fuyuneko.jp>.
Debian JP Documentation ML <debian-doc@debian.or.jp>.