Help us understand the problem. What is going on with this article?

update-alternativesに管理してもらうコマンドを追加する。

More than 5 years have passed since last update.

便利なアイツです。

ネットで軽くググッた範囲だとどうも要領を得ないので
私でも分かるように メモしておきます。

基本

update-alternativesに管理してもらうコマンドを追加するには、 --install オプションを使用します。
構文は次のとおりです。

sudo update-alternatives --install リンクのパス config名 コマンドの実パス 優先度

リンクのパス

update-alternativesが参照先を切り替えてくれるリンクのパス。

例えばJavaの場合、よく JAVA_HOME=/usr/bin/java のようにリンクに対して環境変数を設定しますが、
この/usr/bin/javaに当たる「実行する時に見るリンクのパス」です。

config名

update-alternatives --config NAME を実行するときのNAMEの部分です。

コマンドの実パス

--configによって切り替えられた時の実際のパスです。

優先度

alternativeの優先度を数値で指定します。
javaなど既存のalternativeを参考にしつつ、適当に設定してOKと思われます。

実践

私がこれを調べたのは、aptitudeでインストールされ(てい)るAntが1.8.xなのに対して
最新版は1.9.2で、これをいい感じに切り替えられるようにしたいという動機でした。

このAntを具体例として、その方法を示します。
ついでにAntのインストールも。

sudo mkdir /opt/ant
cd /opt/ant
sudo curl -O http://ftp.tsukuba.wide.ad.jp/software/apache//ant/binaries/apache-ant-1.9.2-bin.tar.gz
sudo tar -xzf apache-ant-1.9.2-bin.tar.gz

将来的にAntの別バージョンが増えるケースを考慮し、
/usr/local/binにバイナリを入れるのではなく、/opt以下にant用サブディレクトリを作成しています。
(FHSでは/usr/local以下にアプリ用の個別サブディレクトリを作ることを推奨していません)

ちなみに、aptitudeで入っているAntは/usr/share/antにあります。
これら2つのAntを update-alternatives の切り替え対象に追加します。

まずは先ほどインストールしたAnt1.9を追加してみます。

sudo update-alternatives --install /usr/local/bin/ant ant /opt/ant/apache-ant-1.9.2/bin/ant 10

もとからあったaptitudeのAntも追加しておきます。

sudo update-alternatives --install /usr/local/bin/ant ant /usr/share/ant/bin/ant 11

これで、 update-alternatives --config ant とすると切り替えられるようになります。

alternative ant (/usr/local/bin/ant を提供) には 2 個の選択肢があります。

  選択肢    パス                             優先度  状態
------------------------------------------------------------
  0        /usr/share/ant/bin/ant              11        自動モード
* 1        /opt/ant/apache-ant-1.9.2/bin/ant   10        手動モード
  2        /usr/share/ant/bin/ant              11        手動モード

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

以上

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away