やっぱり RVM は便利だ!
Ruby on Rails3.1rc4がリリースされ、Ruby on Rails3.1のリリースも近づいてきたもようです。私の開発したRuby on Railsアプリも 2.3.8, 2.3.10, 3.0.5 などのバージョンがあり開発環境のMacの上では、ここに書いたような方法でなんとか共存しています。
しかし、ここに 3.1 が加わると、確実に破綻しそうです、なぜならRuby on Rails3.1 では Ruby1.9.2が推奨だからです。
そこで、RVM(Ruby Version Manager)を導入しました、これは複数のRuby, Gemライブラリーを切り替えて使えるようにしてくれる素晴らしいツールです。
※ 7/25 Lion 対応
rvm の情報
- https://rvm.beginrescueend.com/ 本家 ここには詳細な情報があります。ざっと目を通しておくと良いと思います。
- gihyo.jpのRVM記事、 続き RVMに付いて日本語で解説されています。ただし少し古い記事なので注意しましょう
- rvmのgemsetを使ってbundlerと賢く付き合う方法 Rails3で導入された bundler と rvm に付いて書かれています。
RVMのインストール
ここ に書かれています。
% bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) % vi .zshrc ---------------- 以下の行を追加、 bashでも同じ。 [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function ----------------------------------------- % source .zshrc % type rvm | head -1 rvm is a shell function と表示されれば OK (bashは表示が少し違うようです)
Rubyのインストール
rvm は~/.rvm以下に ruby処理系やgemライブラリーをインストールします。ただし、Macの場合は ここ の手順でインストールすると irb で日本語が入力出来なくなっていましいます。
対処としては、既存の MacPortsのreadlineライブラリーを使う方法もありますが、私の環境ではその場合 rspec実行でエラーが発生してしまいました。そこで RVM が用意しているreadline をインストールする方法で上手くいきました。 Lionではだいじょうぶ
% rvm install 1.8.7
Rubyだけでなく、gem や rake もインストールされます。
ruby 1.9.2 のインストールは同様です。
% rvm install 1.9.2
Gemライブラリーのインストール
rvm は 実行する ruby の切り替えに加え、Gemライブラリーの切り替えも gemsetsという単位できます。 今回は rails2.3用、rails3.0用、rails3.1用のgemsetsを作りました。
Rails2.3用のGemは実行環境等を参考に version を指定して適切なバージョンのgemをインストールします。
% rvm use 1.8.7 ← ruby1.8.7を使えるように切り替える % rvm gemset create rails2.3 % rvm gemset create rails3.0 % rvm gemset use rails2.3 ← rails2.3用gemを使えるように切り替える % gem list ← この時点ではrakeしか入ってない % gem install rails -v 2.3.10 % gem install rspec -v 1.3.4 ...
rails3.0用のgemは bundlerをインストールし、後は bundle install でインストールしました・・・便利!
% rvm gemset use rails2.3 ← rails2.3用gemを使えるように切り替える % rvm gemset use rails3.0 % gem install bundler % cd Railsプロジェクト % bundle install
Rails3.1は ruby1.9.2に切り替え
% rvm use 1.9.2 % rvm gemset create raiils3.1 % rvm gemset use rails3.1 % gem install rails --pre % ...