通常使用するRubyのバージョンを変更する - Ubuntu 12.04
Ubuntu 12.04ではRubyのバージョンは1.8を使用する。
これをupdate-alternativesを使って、1.9に変更する方法を紹介。
なお、Rubyに限らずPerlやPythonなども同じ方法で、通常使うバージョンの変更ができる。
登録されているバージョンの確認
$ update-alternatives --list ruby /usr/bin/ruby1.8 /usr/bin/ruby1.9.1
現在の優先度を確認すると、ruby1.8になってる。
$ update-alternatives --display ruby ruby - 自動モード リンクは現在 /usr/bin/ruby1.8 を指しています /usr/bin/ruby1.8 - 優先度 50 スレーブ erb: /usr/bin/erb1.8 スレーブ erb.1.gz: /usr/share/man/man1/erb1.8.1.gz ...... 現在の '最適' バージョンは '/usr/bin/ruby1.8' です。
優先度を変更する。ruby1.9.1に変更したいので、"2"を押してEnter
$ sudo update-alternatives --config ruby alternative ruby (/usr/bin/ruby を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/bin/ruby1.8 50 自動モード 1 /usr/bin/ruby1.8 50 手動モード 2 /usr/bin/ruby1.9.1 10 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2 update-alternatives: /usr/bin/ruby (ruby) を提供するために 手動モード で /usr/bin/ruby1.9.1 を使います。
変更後は、$ update-alternatives --display ruby で確認してみる。
続いて、gemのバージョンも揃えておく。同じようにgem1.9.1の"2"を選んでやる
$ sudo update-alternatives --config gem alternative gem (/usr/bin/gem を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/bin/gem1.8 180 自動モード 1 /usr/bin/gem1.8 180 手動モード 2 /usr/bin/gem1.9.1 10 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2 update-alternatives: /usr/bin/gem (gem) を提供するために 手動モード で /usr/bin/gem1.9.1 を使います。
gem1.9.1になったか確認してみる。
$ update-alternatives --display gem gem - 手動モード リンクは現在 /usr/bin/gem1.9.1 を指しています /usr/bin/gem1.8 - 優先度 180 スレーブ bash_completion_gem: /etc/bash_completion.d/gem1.8 スレーブ gem.1.gz: /usr/share/man/man1/gem1.8.1.gz /usr/bin/gem1.9.1 - 優先度 10 スレーブ bash_completion_gem: /etc/bash_completion.d/gem1.9.1 スレーブ gem.1.gz: /usr/share/man/man1/gem1.9.1.1.gz 現在の '最適' バージョンは '/usr/bin/gem1.8' です。
rubyがどのバージョンを使うかは、/etc/alternatives/rubyを確認すると /usr/bin/ruby1.8 へのシンボリックリンクになっているが、単にシンボリックリンクを張り替えるだけでは、アップデートのタイミングで1.8に戻ってしまうなどの支障が出ることに注意。
Ubuntuの作法として、シンボリックリンクよりも、update-alternativesコマンドを使う。