アメリエフの技術ブログ

Amelieff Staff Blog

Linuxでソフトのバージョンを簡単に切り替える方法

Linux上で、いろんなソフトやアプリケーションの複数のバージョンを使い分けたい時ってありますよね。
そんな時に、重宝するのが、[alternatives] というコマンドです。
このコマンドを使うと、簡単にソフトのバージョンを切り替えて使用することができます。

今回は、CentOSを例にalternativesの基本的な使い方をご説明いたします。最近のCentOSでは、デフォルトでOpenJDKが入っています。そこに、SunのJavaを入れて、両方を使い分けてみましょう。
まず、今入っているJavaのバージョン確認をします。

$ java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)


こんな感じでOpenJDKが入っていることが分かります。
では、次にalternatives コマンドでインストールされているjavaを確認してみましょう。

$ alternatives --config java
1 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:


このように表示されると思います。いま、alternativesにはOpenJDKだけが登録されています。つぎに、SunのJavaをインストールしましょう。SunのJavaこのページからダウンロードします。

# rpm -ivh jdk-7u7-linux-x64.rpm
準備中... ################################## [100%]
1:jdk ##################################[100%]
Unpacking JAR files...


インストールできたら、alternatives にSunのJavaを登録します。

# alternatives --install /usr/bin/java java /usr/java/default/bin/java 10

最初の引数はリンク、2つ目の引数はalternativesへの登録名、3つ目の引数はプログラムへの実際のパスを書きます。4つ目の10という数字は登録時の優先度を表します。では、alternatives コマンドで登録状況を確認しましょう。

# alternatives --config java
2 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
2 /usr/java/default/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:


インストールしたSunのJavaが登録されます。ここで2を入力してEnterを押すと、SunのJavaに切り替わります。

$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)


このように、alternativesコマンドを使うと、簡単にバージョンを切り替えて、ソフトを利用できます。
alternatives の詳しい使い方などは、ネットで検索すれば沢山出てきますので、ご興味がある方はぜひ調べてみてください。