Rubyを使い始めた (1) - RVM

環境構築の仕方を忘れそうなので、メモしておく。
ちなみに、OSはUbuntu 10.10 を使ってます。

RVMとは?

RVM を使うと、複数のバージョンのrubyやgemを簡単に切り替えることが出来ます。

  • 複数のバージョンでのテスト
  • プロジェクトで異なる環境

などに対応することが出来ます。

インストール方法

ソース(tarball)からインストールする方法。

メモ

2011/02/04現在の最新のバージョンである1.2.5を使っている時に下記のようなエラーが出ました。

undefined local variable or method `version_requirements'

# どの操作でエラーが出たのかはよく分かりませんでした。。。

色々調べてみると、ここの記事に似たようなエラーメッセージを見つけました。

どうやらgemのバージョンが1.5だとうまくいかないらしい。
調査し、こちらのパッチを当てたら動いた!

rvmでインストールされていたgemのバージョンだけをダウングレードする方法が分からなかったので、
今回はバージョンを指定してrvmを入れ直しました。

curl を入れる

$ sudo apt-get install curl

バージョンを指定してインストール

version="1.2.4"
mkdir -p ~/.rvm/src/ && cd ~/.rvm/src/ && curl -O http://rvm.beginrescueend.com/releases/rvm-${version}.tar.gz | tar zxf - && cd rvm-${version} && ./install

.bashrc に下記の行を追加する。

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

他のインストール方法など

詳細は公式ページ参照。

RVMの簡単な使い方

  • ruby-1.9.2を入れる
$ rvm install 1.9.2
  • インストールされているruby一覧を見る
$ rvm list
  • rubyを切り替える
$ rvm 1.9.2
  • デフォルトで使うrubyを設定する
$ rvm 1.9.2 --default

# シェルを再起動しても1.9.2が設定されている状態になります

  • gemsetを作る
$ rvm gemset create rails2
  • gemsetの一覧を見る
$ rvm gemset list
  • gemsetを切り替える
$ rvm gemset use rails2

# gemsetを作成しても、useしていないと意味がない

  • 現在のgemsetを確認する
$ rvm gemset name

.rvmrc でプロジェクト毎にrubyのバージョンとgemsetを切り替える

プロジェクトのルートディレクトリに下記のようなファイルを入れておく

  • project_path/.rvmrc
rvm use 1.9.2@rails2

あとは

$ cd project_path/

するだけで自動的にrubyとgemsetが切り替えられる。

ただし、初回だけこんな画面が出ます。

  ===============================================================
  = NOTICE:                                                     =
  ===============================================================
  = RVM has encountered a not yet trusted .rvmrc file in the    =
  = current working directory which may contain nasty code.     =
  =                                                             =
  = Examine the contents of this file to be sure the contents   =
  = are good before trusting it!                                =
  =                                                             =
  = Press 'q' to exit the reader when finished reading the file =
  ===============================================================

  (press enter to continue when ready)

英語で書いてあるけど、一応。

  • Enter押して、'q'押して、最後に(yes/no)を聞かれるので、'yes'を入力する。