UbuntuにRVMを使ってRuby環境を構築する

久しぶりの更新です。Ruby1.8.6系、Ruby1.8.7系、Ruby1.9.2系をそれぞれ切り換えて利用することが多くなってきたので、環境の整理もかねてRVMを使ってRuby環境を構築し直してみました(MacTextmateでrvmを使う方法も付記しました)。

環境は以下の通りです

  • Ubuntu 10.04.3 LTS
  • RVM 1.8.3

1.まずはrvmを作る為に必要なツールを入れておきます

$sudo apt-get install git-core
$sudo apt-get install curl

ほかにもreadlinesが入っていないのであれば入れておいて下さい。

2.次にRVMをインストールします

rvmの環境は~/.rvm配下に作られるのがディフォルトのようですので、先に環境を作っておきます。rvm経由でインストールしたRubyも同じフォルダ配下に入っていきます。

$ mkdir -p ~/.rvm/src/
$ cd  ~/.rvm/src
$ git clone --depth 1 git://github.com/wayneeseguin/rvm.git
$ cdrvm
$ ./install

rvmを定義する環境変数が.bashtcの最終行に追加されます。なんらかの場合で無い時には、以下の内容を.bashrcか.bash_profileに追加してください

if [[ -s /ホームディレクトリまでのパス/.rvm/scripts/rvm ]] ; then source /ホームディレクトリまでのパス/.rvm/scripts/rvm ; fi

インストールが完了したら環境ファイルを読み込んで設定完了です。

$source ~/.bashrc
$rvm -v
rvm 1.8.3 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]

3.次にRubyをインストールしていきます

まずインストール可能なrubyの一覧を表示して確認します。

$rvm list known

ここでは、MRI Rubiesから1.8.7[-p352]と1.9.2[-290]をインストールします。[]の中は省略可能です

$rvm install 1.8.7
$rvm install 1.9.2

インストールされたRubyは以下のフォルダに入っています

~/.rvm/rubies

これで環境構築が完了です。

4.RVMでよく使うコマンド群を整理してみました

利用するRubyバージョンの指定
$rvm use XXXXX (例:$rvm use 1.8.7)
特定のバージョンをディフォルトで動作させる
$rvm use XXXXX --default
インストール済みのRubyをリスト表示
$rvm list
インストール可能なRubyをリスト表示
$rvm list known
インストール可能なRubyリストを更新
$rvm reload
インストール済みのRubyを更新する
$rvm upgrade 旧バージョン 新バージョン (例:$rvm upgrade ruby-1.9.2-p136 ruby-1.9.2-p180)
rvm自身の更新
$rvm get
rvmのバージョン確認
$rvm -v
rvmのRubyを切り離してOS環境のRubyを使う
$rvm system

5.cron等RVM以外の環境からRubyを呼び出す場合
次のTextmateの場合と似ていたので割愛していたので、あまり触れられていないようなので書いておきます。

cron等からRVMでインストールした配下のRubyを呼び出すと直接rubyモジュールをコールしてもgem等が正常に見えずにトラブルが発生します。

こうした事を解決するためにwrapperコマンドを使います

$rvm wrapper XXXX ラップ名 (例:$rvm wrapper 1.8.7 cron)

このコマンドを入力すると指定したバージョンの環境設定が入ったシェルファイルができあがります。できるシェルファイルは~/.rvm/bin/ラップ名_ruby (ruby以外にirb等も出来てます)となっています。

このラップしてできたファイルをcron等で呼び出す元のrubyとして指定することにより特定の環境でrubyが動作します。

6.Mac環境でTextmateと一緒に使う場合のおまけです

textmateからrvm配下のrubyを呼び出す用のシェルを作る

$rvm wrapper バージョン textmate
例)$rvm wrapper 1.8.7 textmate

(~/.rvm/bin/textmate_rubyというファイルができるのでtextmateの環境設定でTM_RUBYを追加しそのパスを入れる)

以後は利用環境を切り替える時にuseコマンドとwrapperコマンドを併用すればOK

$rvm use 1.9.2
$rvm wrapper 1.9.2 textmate

駆け足ですがRVMの環境とよく使うコマンドをまとめてみました。RVMのバージョンアップに伴って変更となるものも多いと思いますので、動かない場合は公式サイトを確認してください - http://beginrescueend.com/