複数の異なるバージョンのRubyを入れる

複数の異なるRubyを管理する方法をメモします。
RVM(Ruby Version Manager)を使うことでできます。
https://rvm.io

RVMのダウンロードとインストール

通常のユーザで入れると$(HOME)/.rvmにインストールされます。
root(su -)だと、/usr/local/rvm にインストールされます。
ここでは、通常ユーザで実施します。

 % curl https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
 % cd ~/.rvm
 % ./scripts/rvm

ここで~/.bash_profileをのぞいてみると、最後行あたりに以下が追加されます。

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

rvmコマンドが実行できるか確認します。

 % source ~/.bash_profile          #<= とりあえず
 % rvm version

rvm 1.14.5 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

無事RVMがインストールできました。
次回起動時からはrvmコマンドが使えるはずです。
この時点ではRuby本体はインストールされいません。

複数のRubyを入れてみる

次はRVM管理下のもと複数のバージョン指定でRubyを入れてみます。

 % rvm install ruby-1.8.7
 % rvm install ruby-1.9.3

コンパイルからするので結構時間がかかります。

では、バージョンを切り替えて使ってみます。

 % rvm use 1.8.7
 % ruby --version
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-linux]

 % rvm use 1.9.3
 % ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]

whichコマンドでrubyのパスを覗いてみてください。rvm useコマンドを使うことで参照先が切り替わっていることがわかります。

あと、面白いのはJRubyもインストールできます。

 % rvm install jruby-1.7.0.preview1

それでもインストールの手間が結構省けるので。

ここでは、Rubyのバージョン切り替えをしてみましたが、RVMはgemのバージョン管理もあわせて行うことができます。

〜とりあえず、ここまで〜

まとめ

Rubyは(他の言語もそうかも知れませんが)バージョンによってアプリが動作したりしなかったりするので、そのたびにバージョンを揃えないといけないので大変です。
そこでRVMです。
僕は最初、ネイティブの(/usr/bin下になる)Rubyで十分だったので使っていませんでした。
しかし、Redmineを運用するということになった時にバージョンを合わせる苦労があり、結果RVMにたどり着きました。
RVMは、インストールも簡単で便利で、僕にとって手放せないものとなりました。