はじめに
Rubyの普及にともない,Rubyの生みの親である,まつもとゆきひろ氏がC言語で作成したRubyインタプリタ(CRuby)以外にも,JVMで実行されるJRuby,Objective-Cで実装されMacアプリケーションのプログラミングのできるMacRuby,CRubyベースにメモリ管理に改良を加えているRuby Enterprise Edition等,プログラミング言語Rubyを実行できる環境が増えてきました。またCRubyに関しても,現在最も使われているバージョンである1.8系以外にも,最新の安定版である1.9系も普及期にはいってきました。
今回は,複数のRuby実行環境の管理を簡単にするRVM(Ruby Version Magager)を紹介します。
RVMとは
RVMはUNIX系の環境で,複数のRuby処理系をインストール,共存させることができるツールです。
ひとつの環境に対してRVMを使わずに複数のRubyをインストールする場合,それぞれのRubyでコマンドやインストール方法が違ったりと面倒なことがありました。また,CRubyの1.8系と1.9系を共存させるには,Rubyをコンパイルする際に実行ファイルがrubyでなくruby1.9になるようにプレフィクスを付けたりしたりなど工夫が必要でした。
RVMはbashスクリプトです。RVMを導入することで以下のようなことができます。
- Rubyのインストール
- 使用するRuby処理系の切り替え
- 複数のRubyでスクリプトを一斉に実行
- gemの管理
- 違いを意識することなく同一の手順でインストールできる
- すぐに最新のRubyを入手できる
- それぞれのRubyをrubyで実行できる
RVMのインストール
RVMをインストールするには,いくつかの方法があります。
- gemでのインストール
- githubからのインストール
- 公式サイトで配布されているtarballからのインストール
今回は,一番簡単にインスールできるgemを使ったインストール方法を紹介します。 その他の方法については,RVMのサイトを参照してください。
gemでインストールするためには,使っている環境でRubyGemsが使用できる必要があります。ここでは,RubyGemsのインストールは割愛します。
まず,RubyGemsでrvmパッケージをインストールします。
$ gem install rvm
gemのrvmパッケージをインストールするとrvm-installというコマンドがインストールされています。このコマンドを実行することで,RVMがインストールされます。
$rvm-install
あとは,rvm-installを実行したときに表示されるメッセージにも示されている通り,シェルを起動したときにRVMのスクリプトを読みこむために,.bashrcや.zshrcに以下を記述します。
if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi
記述後,シェルを開き直すとRVMが使用できるようになります。
RVMは,rvmコマンドと,そのサブコマンドで構成されています。主な使い方を確認するには"rvm help"を使用します。
$ rvm help
RVMでのRubyのインストール
RVM(4月4日の執筆時点でのRVMの最新バージョンは0.1.25)では,以下のRubyをインストールできます。
- CRuby1.8/1.9
- Rubinius
- JRuby
- Ruby Enterprise Edition
- MagLev
- IronRuby
- MacRuby
RVMでRubyをインストールする際は,以下のようにコマンドを指定します。
rvm install Rubyの種類
指定できるRubyの種類は"rvm list known"コマンドを実行することで確認できます。
$ rvm list known
表示されている一覧の中には,末尾に"-head"と書かれているものがあるはずです。これを指定することで,インストール時に最新版を取得するようになります。
それでは,CRubyの最新バージョンをインストールしてみましょう。
CRubyの最新バージョンは"ruby-head"を指定することでインストールできます。"ruby-head"では, http://svn.ruby-lang.org/repos/ruby/trunk から最新版のソースを取得し,コンパイルしインストールすることになります。そのため,ソースを入手するためにはSubversionを使えるようにしておく必要があります。
RVMでRubyをインストールには,"rvm install"コマンドを使用します。
$ rvm install ruby-head
Rubyのコンパイル時には,configureオプションを渡したいときがあります。例えば,Mac OS X 10.6ではreadlineが標準で用意されておらず,そのままコンパイルすると,irbで日本語が入力することができません。そのため,通常ソースコードからコンパイルする際は,readlineを別途インストールしておき,readline等のライブラリのあるパスを"--with-opt-dir"という configureオプションで指定する必要があります。
rvmでインストールする際,configureオプションは-Cで渡します。複数のconfigureオプションを渡したい場合は,カンマで区切って指定します。 よって,わたしの手元の環境でインストールするは,以下のようになります。
$ rvm install ruby-head -C "--enable-shared=true,--with-opt-dir=/opt/local"
Installing Ruby from source to: /Users/takkanm/.rvm/rubies/ruby-head
Running autoconf
Configuring ruby-head, this may take a while depending on your cpu(s)...
Compiling ruby-head, this may take a while, depending on your cpu(s)...
Installing ruby-head Installation of ruby-head is complete.
Updating rubygems for ruby-head Installing gems for ruby-head.
Installing rake
Installation of gems for ruby-head is complete.
これで,Rubyのインストールが完了しました。
RVMでインストールされた実行ファイルは,環境変数rvm_bin_path(デフォルトでは${HOME}/.rvm/bin)で参照されるディレクトリ以下に配置されます。
$ ls $rvm_bin_path
ruby-head* rvm* rvm-prompt* rvmsudo*
また,インストール時に使用したソースは,環境変数rvm_src_path(デフォルトでは${HOME}/.rvm/src)で参照されるディレクトリに保存されます。
$ ls $rvm_src_path ruby-head/

