OSXで複数バージョンのRubyを混在させて使う。RVM(Ruby Version Manager)導入編

複数バージョンのRailsを動かしたいので、OSX上でRubyやgemの異なるバージョンを混在させたい。


出来るだけ簡単に導入するために、極力Mac Portが使えるとうれしい。


そんな事を考えていると、RVM(Ruby Version Manager)という仕組みの記事を見つけた。

参考:
第39回 RVM(Ruby Version Manager)による環境構築:Ruby Freaks Lounge|gihyo.jp … 技術評論社


とりあえず、面白そうなのでやってみる事にした。手順は上の記事通りで特に問題ないけど、忘れないようにメモ。


結論から言うと途中はまったけど、Railsも混在できた。

  • RVMのポイント
    • ~/.rvm以下にRubyの実行環境を、バージョン毎に配置できる。
    • 必要なときにRubyのバージョンを切り替えられる。
    • 基本的にインストール時はRubyをソースからコンパイルしている。
  • 導入手順

注意が必要な点としてrvm導入後の操作はローカルユーザ権限で行う必要がある。
(最初Sudoを利用して特権で操作をしてしまいえらく焦った。)

$ sudo gem install rvm
(省略)
Successfully installed rvm-1.0.14
1 gem installed
Installing ri documentation for rvm-1.0.14...
Installing RDoc documentation for rvm-1.0.14...
$ rvm-install
(省略)
/Library/Ruby/Gems/1.8/gems/rvm-1.0.14/bin/rvm-install:4: warning: Insecure world writable dir /opt in PATH, mode 040777

  RVM:  Shell scripts enabling management of multiple ruby environments.
  RTFM: http://rvm.beginrescueend.com/
  HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)

そうすると、install可能なバージョンを表示する事が可能になる。

$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p399]
[ruby-]1.8.6-head
[ruby-]1.8.7[-p302]
[ruby-]1.8.7-head
[ruby-]1.9.1-p243
[ruby-]1.9.1[-p376]
[ruby-]1.9.1-p429
[ruby-]1.9.1-head
[ruby-]1.9.2-preview1
[ruby-]1.9.2-preview3
[ruby-]1.9.2-rc1
[ruby-]1.9.2-rc2
[ruby-]1.9.2[-p0]
[ruby-]1.9.2-head
ruby-head

# JRuby
jruby-1.2.0
jruby-1.3.1
jruby-1.4.0
jruby-1.5.1
jruby-1.5.2
jruby[-1.5.3]
jruby-head

# Rubinius
rbx-1.0.1
rbx[-1.1.0]
rbx-head

# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7]
ree-1.8.6-head
ree-1.8.7-head

# MagLev
maglev[-24209]
maglev-head

# Shyouhei head, the default mput
mput[-head]

# Mac OS X Snow Leopard Only
macruby-0.6
macruby-[0.7] # the default macruby
macruby-nightly
macruby-head      # Build from the macruby git repository

# IronRuby -- Not implemented yet.
ironruby-0.9.3
ironruby-1.0-rc2
ironruby-head

それじゃあ、Railsのバージョン(2.3.2)に合わせてRuby 1.9.1を入れてみる。

$ rvm install ruby-1.9.1-p429
(省略)
Install of ruby-1.9.1-p429 - #complete 
$ vi .bashrc
if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi

後は、新規に導入した1.9.1に切り替えてみる。OKだったので今日はここまで。

$ rvm use ruby-1.9.1-p429
$ruby -v
ruby 1.9.1p429 (2010-07-02 revision 28523) [i386-darwin9.8.0]

次はGemとRails関連をメモする予定。