概要

VM上のLinuxにRVM(Ruby Version Manager)をインストールし、Ruby 1.8.7と1.9.1を切り替えて使えるようにするまでの作業メモ。

環境

ホスト

  • Windows 7 Enterprise (64bit)
  • Oracle VM VirtualBox 3.2.4 r62647

ゲスト

% cat /etc/redhat-release
CentOS release 5.4 (Final)
% uname -a
Linux {host-name} 2.6.18-164.2.1.el5 #1 SMP Wed Sep 30 12:55:19 EDT 2009 i686 i686 i386 GNU/Linux

インストール

RVM

もともとRuby 1.8.7はインストール済みだったのでgemを使った。

% sudo gem install rvm
% rvm-install

.zshrcに以下を追記。

if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi

Ruby

% rvm list known
# MRI Rubies
(ruby-)1.8.6(-p399)
(ruby-)1.8.6-head
(ruby-)1.8.7(-p174)
(ruby-)1.8.7-head
(ruby-)1.9.1(-p243)
(ruby-)1.9.1(-p376)
(ruby-)1.9.1-head
(ruby-)1.9.2-preview1
(ruby-)1.9.2-preview3
(ruby-)1.9.2-head
ruby-head

 # (以下略 : JRuby, Rubiniusなどが並ぶ)

1.8.7は安定版として提供されているものとpatch levelが違うので、明示的に指定してインストールする。

% rvm install 1.9.1
% rvm install 1.8.7-p249

Rubyの切り替え

使いたいRubyをrvmコマンドで切り替えることができる。

% rvm 1.9.1
% rvm 1.8.7-p249

普段使うRubyはどれか、デフォルトを設定しておく。

% rvm 1.9.1 --default

まとめと課題

こんな簡単にできるとは…というのが正直な感想。うまく活用して「1.8.7で新しくコードを書くことはないでしょうから」という世界の実現を目指そう。

なお、調子に乗ってcygwin環境にも導入してみた。そこそこうまくいったのだが、1.8.7-p249のビルドに失敗している。本題にはあまり関係ないので追及はまたいずれ。