RVMで複数バージョンのRuby&Rails3の環境を構築する

こんばんは!
今日は、Macに複数のバージョンのRuby(1.8.7と1.9.2)をインストールしました。
ついでに、1.9.2にはRails3の環境を構築したので、今更感が満載ですが、自分の理解を
深める意味も含めて、手順をまとめました。

目次

  1. RVMのインストール
  2. 複数バージョンのRubyインストール
  3. Rails3のインストール

RVMのインストール

複数のバージョンのRubyが利用出来る環境を構築するためにRVMを利用します。
RVMは、Ruby Version Manager の略です。

RVMをインストールするにあたりgitが必要です。
インストールしてない場合は、macports や以下のサイトを参考にインストールしてください。

準備ができましたら、Terminalより以下のコマンドを実行しRVMをインストールします。

$ sudo gem install rvm
$ bash < <(curl -s -B https://rvm.beginrescueend.com/install/rvm)
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

Rubyのインストール

.bash_profileに追記した内容を読み込む必要がありますので、以下コマンドを実行します。(Terminal再起動でもOK)

$ source .bash_profile
Ruby 1.8.7のインストール
$ rvm install 1.8.7
$ rvm use 1.8.7
$ ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10.8.0]
Ruby1.9.2のインストール
$ rvm install 1.9.2
$ rvm use 1.9.2 --default
$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.8.0]

2行目の「--default」は、1.9.2をデフォルトとして利用するためのオプションです。
これで、複数バージョンのRubyがインストールされました。
以下のコマンドにてインストールされている事を確認できます。

$ rvm list
   ruby-1.8.7-p334 [ x86_64 ]
=> ruby-1.9.2-p180 [ x86_64 ]
その他のRVMコマンド
システムデフォルトの状態に戻す場合のコマンドです。
$ rvm reset
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
defaultに切り替える場合のコマンドです。
$ rvm use default
$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.8.0]

Rails3のインストール

Rails3をインストールするためのgemset(rails-3.0.9)を作ります。
合わせて、これをデフォルトに指定します。

gemset生成

rails-3.0.9はgemsetの名前で、自由に付けることができますが、後から何かわかるように
バージョン等にしておいた方がよいです。

$ rvm gemset create rails-3.0.9
$ rvm use ruby-1.9.2@rails-3.0.9 --default
$ rvm gemset list
gemsets for ruby-1.9.2-p180
   global
=> rails-3.0.9
Rails3のインストール
続いて、Rails3のイントールです。
$ sudo gem install rails --no-ri --no-rdoc
gem install rails  --no-ri --no-rdoc
Fetching: activesupport-3.0.9.gem (100%)
Fetching: builder-2.1.2.gem (100%)
Fetching: i18n-0.5.0.gem (100%)
Fetching: activemodel-3.0.9.gem (100%)
Fetching: rack-1.2.3.gem (100%)
Fetching: rack-test-0.5.7.gem (100%)
Fetching: rack-mount-0.6.14.gem (100%)
Fetching: tzinfo-0.3.28.gem (100%)
Fetching: abstract-1.0.0.gem (100%)
Fetching: erubis-2.6.6.gem (100%)
Fetching: actionpack-3.0.9.gem (100%)
Fetching: arel-2.0.10.gem (100%)
Fetching: activerecord-3.0.9.gem (100%)
Fetching: activeresource-3.0.9.gem (100%)
Fetching: mime-types-1.16.gem (100%)
Fetching: polyglot-0.3.1.gem (100%)
Fetching: treetop-1.4.9.gem (100%)
Fetching: mail-2.2.19.gem (100%)
Fetching: actionmailer-3.0.9.gem (100%)
Fetching: thor-0.14.6.gem (100%)
Fetching: rdoc-3.6.1.gem (100%)
Fetching: railties-3.0.9.gem (100%)
Fetching: bundler-1.0.15.gem (100%)
Fetching: rails-3.0.9.gem (100%)
Successfully installed activesupport-3.0.9
Successfully installed builder-2.1.2
Successfully installed i18n-0.5.0
Successfully installed activemodel-3.0.9
Successfully installed rack-1.2.3
Successfully installed rack-test-0.5.7
Successfully installed rack-mount-0.6.14
Successfully installed tzinfo-0.3.28
Successfully installed abstract-1.0.0
Successfully installed erubis-2.6.6
Successfully installed actionpack-3.0.9
Successfully installed arel-2.0.10
Successfully installed activerecord-3.0.9
Successfully installed activeresource-3.0.9
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.9
Successfully installed mail-2.2.19
Successfully installed actionmailer-3.0.9
Successfully installed thor-0.14.6
Successfully installed rdoc-3.6.1
Successfully installed railties-3.0.9
Successfully installed bundler-1.0.15
Successfully installed rails-3.0.9
24 gems installed
ということで、めでたく環境が整いましてございます。
$ rails -v
Rails 3.0.9
gemsetの削除

不要になったgemsetやインストールに失敗してしまった場合などは、
以下のコマンドにてgemsetを削除することができます。(rails-3.0.9はgemset名です)

rvm gemset delete rails-3.0.9

RubyとかRailsって、バージョンが少し上がるだけで動かないので、
バージョン管理ができるRVMとgemsetって便利だなと心から思いました。

【追記2011/6/28(おまけ)】Rails3.1のインストール

Rails3.1のリリース候補が出ているとのことでしたので、インストールしてみました。

インストール用のgemsetを作って、、、

$ rvm gemset create rails-3.1.0
$ rvm use ruby-1.9.2@rails-3.1.0
$ rvm gemset list
gemsets for ruby-1.9.2-p180
   global
   rails-3.0.9
=> rails-3.1.0
いんすとーる!
$ gem install rails --pre --no-ri --no-rdoc
gem install rails --pre --no-ri --no-rdoc
Fetching: multi_json-1.0.3.gem (100%)
Fetching: activesupport-3.1.0.rc4.gem (100%)
Fetching: builder-3.0.0.gem (100%)
Fetching: i18n-0.6.0.gem (100%)
Fetching: bcrypt-ruby-2.1.4.gem (100%)
Building native extensions.  This could take a while...
Fetching: activemodel-3.1.0.rc4.gem (100%)
Fetching: rack-1.3.0.gem (100%)
Fetching: rack-cache-1.0.2.gem (100%)
Fetching: rack-test-0.6.0.gem (100%)
Fetching: rack-mount-0.8.1.gem (100%)
Fetching: hike-1.1.0.gem (100%)
Fetching: tilt-1.3.2.gem (100%)
Fetching: sprockets-2.0.0.beta.10.gem (100%)
Fetching: tzinfo-0.3.29.gem (100%)
Fetching: erubis-2.7.0.gem (100%)
Fetching: actionpack-3.1.0.rc4.gem (100%)
Fetching: arel-2.1.3.gem (100%)
Fetching: activerecord-3.1.0.rc4.gem (100%)
Fetching: activeresource-3.1.0.rc4.gem (100%)
Fetching: mime-types-1.16.gem (100%)
Fetching: polyglot-0.3.1.gem (100%)
Fetching: treetop-1.4.9.gem (100%)
Fetching: mail-2.3.0.gem (100%)
Fetching: actionmailer-3.1.0.rc4.gem (100%)
Fetching: thor-0.14.6.gem (100%)
Fetching: rack-ssl-1.3.2.gem (100%)
Fetching: rdoc-3.7.gem (100%)
Fetching: railties-3.1.0.rc4.gem (100%)
Fetching: bundler-1.0.15.gem (100%)
Fetching: rails-3.1.0.rc4.gem (100%)
Successfully installed multi_json-1.0.3
Successfully installed activesupport-3.1.0.rc4
Successfully installed builder-3.0.0
Successfully installed i18n-0.6.0
Successfully installed bcrypt-ruby-2.1.4
Successfully installed activemodel-3.1.0.rc4
Successfully installed rack-1.3.0
Successfully installed rack-cache-1.0.2
Successfully installed rack-test-0.6.0
Successfully installed rack-mount-0.8.1
Successfully installed hike-1.1.0
Successfully installed tilt-1.3.2
Successfully installed sprockets-2.0.0.beta.10
Successfully installed tzinfo-0.3.29
Successfully installed erubis-2.7.0
Successfully installed actionpack-3.1.0.rc4
Successfully installed arel-2.1.3
Successfully installed activerecord-3.1.0.rc4
Successfully installed activeresource-3.1.0.rc4
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.9
Successfully installed mail-2.3.0
Successfully installed actionmailer-3.1.0.rc4
Successfully installed thor-0.14.6
Successfully installed rack-ssl-1.3.2
Successfully installed rdoc-3.7
Successfully installed railties-3.1.0.rc4
Successfully installed bundler-1.0.15
Successfully installed rails-3.1.0.rc4
30 gems installed
確認!!
$ rails -v
Rails 3.1.0.rc4
ばっちり!