rbenv を用いて Ruby をシステム全体にインストールする方法

注:本記事はMacOS X や Linux などのUnix系OS向けとなります。WindowsでもCygwin環境を使えば出来るかもしれませんが。

MacOS Xを使っていると、標準でインストールされている ruby が1.8系なので、最新のRuby on Railsを用いたウェブアプリ開発が出来なかったりして困ります。そこで最新のRubyをインストールすることになりますが、バージョンアップ時の手間を考えると、ソースコードをもってきてビルドするという手順を出来るだけ簡単にしておきたいところです。

そのような要望に応えるツールとして rvmrbenv といったものがあります。本記事では rbenv を用いてシステム全体に新しいバージョンのRubyを適用する方法を記します。

なお、Rubyのビルドに必要なツール類(コンパイラやライブラリなど)のインストールについては省略します。

rbenv のインストール

本記事では、/usr/local 以下に rbenv および Ruby をインストールするものとします。システム全体でのインストールとするため、作業は特権ユーザ(root)にて行います。

まず、/usr/local 以下に rbenv を github からもってきます。

# mkdir -p /usr/local
# git clone https://github.com/sstephenson/rbenv.git

rbenv 以下にpluginsディレクトリを作成し、その下に ruby-build を持ってくる。

# cd rbenv
# mkdir plugins
# git clone https://github.com/sstephenson/ruby-build.git

rbenv と ruby-build は gitで取ってくるのではなく、パッケージを取ってきて展開するという方法でも構いませんが、git pullするだけでアップデートと後々楽になるので、ここでは git clone しています。

rbenv の環境設定を行います。 システム全体でrbenvを使用したい場合、MacOS Xの場合、/etc/bashrc に以下を追加するなどが良いでしょう。 ((ユーザごとで設定する場合は、$HOME/.bash_profile などに記載してください。))

export RBENV_ROOT=/usr/local/rbenv
export PATH="/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"

Linuxの場合、/etc/profile.d/rbenv.sh などのファイルを作成して、その中に上記を記述するというのでも良いでしょう。

その後、rbenv の環境設定を有効化します(上記の追加内容の一連のコマンドを実行したり、source コマンドを用いて上記の設定を読みこませたり、ログインしなおしたりしてください)。設定が成功しrbenv にパスが通っているかどうかは、以下のコマンドで確認ができます。

# which rbenv
/usr/local/rbenv/bin/rbenv

/usr/local/rbenv/bin/rbenv が返ってきていればOKです。

Rubyのビルド

次にRubyをビルドします。rbenv を使えば、バージョンを指定してRubyのビルドを行うことができます。((rbenv内の整合性がとれていない場合にrbenvコマンドは失敗するかもしれません。その場合は rbenv rehashコマンドで整えるなどして再度実行してみてください。))

たとえば、ruby 2.0.0-p0 をインストールしてみます。

# rbenv install 2.0.0-p0

Rubyのビルドに必要なツールが揃っていれば、ビルドに成功するはずです。成功しない場合、何かツールが欠けているので、エラーメッセージに従って足りないツールをインストールしてください。 ((opensslやreadlineなどをあらかじめシステムにインストールしておき、ビルド時にそれを参照するようにすることも可能ですが、ここではrbenvに依存するライブラリの準備も任せています。))

インストールされているRubyを確認します。これには rbenv versions コマンドを使用します。

# rbenv versions
  system
* 2.0.0-p0 (set by /usr/local/rbenv/version)

ここで、system に * が付いている場合は、標準のRuby(1.8系)が選択されている状態ですので、ruby global コマンドを用いて、先ほどインストールしたrubyを利用するように変更してください。

# rbenv global 2.0.0-p0

バージョンを指定したRubyのインストールは完了です。実行されるrubyコマンドのパスとバージョンを確認してください。

# which rbenv
/usr/local/rbenv/shims/ruby
# ruby -version
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0]

以上です。Enjoy your Ruby life!