Top / Software / Alternatives-System

Alternatives システムの FAQ

似たようなアプリやバージョン違いのアプリを切り換えて使うにはどうしたらいいの?

alternatives システムを利用する方法

例えば emacs の場合

# update-alternatives --config emacs

とすると、切り換えることができるアプリのリストと番号が表示されます。 "*" が付いているものが、現在のデフォルトに指定されているアプリです。 ここでデフォルトに変更したいアプリの番号を選択する事で切り替えられます。
/etc/alternatives/ を覗けばどんなものが指定できるのか分かると思いますが、主なものを挙げると

  • editor (vim や jed などのエディタ)
  • pager (more や lv などのページャ)
  • x-terminal-emulator (kterm や mlterm などのターミナルエミュレータ)
  • x-www-browser (mozilla や konqueror などの X 上でのウェブブラウザ)
  • x-window-manager (twm や fvwm などのウィンドウマネージャ)
  • x-session-manager (gnome や kde などの統合デスクトップ環境)

などがあります。
そのままでは関連パッケージをアップデートすると優先度が高いアプリに変更されてしまいます。 それが嫌ならデフォルトにしておきたいアプリの優先度を高くする必要があります。
ウィンドウマネージャの一つである sawfish を例にしてみると、
各ウィンドウマネージャの優先度を表示するには

$ update-alternatives --display x-window-manager

sawfish の優先度を 70 にするには

# update-alternatives --install  /usr/bin/x-window-manager x-window-manager /usr/bin/sawfish 70

とします。

またパッケージシステムで管理されていないアプリや、そもそも alternatives を提供していないパッケージも追加する事ができます。
/usr/local/ 以下などに fvwm をインストールしてあり、それを追加したい場合は

# update-alternatives --install /usr/bin/x-window-manager x-window-manager /usr/local/bin/fvwm 70

リンク先がおかしくなったり、デフォルトに戻したくなったら

# update-alternatives --auto x-window-manager

とします。

ややマニアックな方法ですが、テスト目的などで多くの異なるバージョンのアプリを同時に管理したいとき等は、 /usr/local 以下ではなく、一般ユーザで読み書きできるディレクトリにアプリをインストールすることと思われます。 そのような場合は、 まず、アプリを /home/foo/fvwm/ 等のディレクトリにインストールし、/home/foo/bin を環境変数 PATH に追加した後

$ update-alternatives --altdir /home/foo/altdir/ --admindir /home/foo/admindir/ --install /home/foo/bin/fvwm fvwm /home/foo/fvwm/fvwm 100

とします。これは先程の方法よりも、

  • root ではなく一般ユーザで管理できる
  • /etc/alternatives/, /var/lib/dpkg/alternatives/ 以下を汚さないため、既存のパッケージシステムとの混乱を回避できる (/etc/alternatives/ の替わりが /home/foo/altdir/, /var/lib/dpkg/alternatives/ の替わりが /home/foo/admindir/)。

などの利点があります。

詳しくは、 第5 回東京エリアDebian 勉強会 の '4.8 マニアックなオプション' を参照して下さい。

GAlternatives という GUI フロントエンド もあります。

参考:

  • man update-alternatives

環境変数等を利用する方法

ウェブブラウザ、エディタ、ページャなどについては環境変数でも切り替えられます。
BROWSER、EDITOR、PAGER という環境変数を指定する事で、それぞれ sensible-browser、sensible-editor、sensible-pager が呼ばれた時に該当ソフトウェアが起動します。 例えば

$ BROWSER=firefox sensible-browser

とすると firefox が起動します。 これらの環境変数が指定されていない場合、alternatives システムで指定されたソフトウェアが起動します。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-08-30 (木) 11:33:15 (3736d)