この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、クラスメソッドの稲毛です。
複数バージョンの Ruby を切り替えるだけでなく、ローカルディレクトリ毎に Ruby のバージョンを指定できる「 rbenv 」がとても便利だったので、インストール方法などを記しておきます。
ビルド環境の構築
Ruby をビルドする環境が構築されていない場合は、下記 ruby-build の Wiki を参考にビルド環境を構築する。
rbenv + ruby-build のインストール
rbenv で Ruby のインストールを行うので rbenv のプラグイン「 ruby-build 」を併せてインストールする。
Linux の場合
ここでは既に Git がインストールされているものとします。
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv --version
rbenv 0.4.0-97-gfe0b243
- 1, 2 行目
- GitHub から rbenv と ruby-build をクローンする。
.rbenv
`-- plugins
`-- ruby-build
- 4, 5 行目
- rbenv へパスを通し初期化するスクリプトを .bash_profile へ追加する( bash の場合)。
- 7, 8 行目
- .bash_profile を実行後、動作を確認する。
MacOSX の場合
MacOSX では HomeBrew を利用すると簡単。
ここでは既に HomeBrew がインストールされているものとします。
$ brew update
$ brew install rbenv ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv --version
rbenv 0.4.0
- 1, 2 行目
- HomeBrew のパッケージツリーを更新し、rbenv および ruby-build をインストールする。
- 4 行目
- rbenv の初期化スクリプトを .bash_profile へ追加する( bash の場合)。
- 6, 7 行目
- .bash_profile を実行後、動作を確認する。
Ruby のインストール
「 rbenv install 」コマンドを用いて Ruby をインストールする。
「 --list 」オプションを指定するとインストール可能な Ruby のバージョンがリスト表示される。
$ rbenv install --list
Available versions:
・
・
2.1.1
2.1.2
2.2.0-dev
jruby-1.5.6
jruby-1.6.3
jruby-1.6.4
・
・
$ rbenv install 2.1.2
ここでは Ruby 2.1.2 をインストールしています。
Ruby バージョンの表示
rbenv versions
「 rbenv versions 」コマンドで、インストール済み Ruby のバージョンがリスト表示される。
$ rbenv versions
1.9.3-p547
2.0.0-p481
* 2.1.2 (set by /home/user/.rbenv/version)
jruby-1.7.12
カレントディレクトリで有効な Ruby バージョンにはアスタリスク( * )が表示される。
rbenv version
「 rbenv version 」コマンドで、カレントディレクトリで有効な Ruby バージョンが表示される。
$ rbenv version
2.1.2 (set by /home/user/.rbenv/version)
Ruby バージョンの選択
rbenv global
「 rbenv global 」コマンドで、環境全体での Ruby バージョンを指定できる。
$ rbenv global 1.9.3-p547
$ rbenv version
1.9.3-p547 (set by /home/user/.rbenv/version)
rbenv local
「 rbenv local 」コマンドで、ディレクトリ固有の Ruby バージョンを指定できる。
$ cd
$ mkdir hoge && cd $_
$ rbenv local 2.0.0-p481
$ rbenv version
2.0.0-p481 (set by /home/user/hoge/.ruby-version)
$ cd
$ mkdir piyo && cd $_
$ rbenv local 2.1.2
$ rbenv version
2.1.2 (set by /home/user/piyo/.ruby-version)
$ cd
$ mkdir fuga && cd $_
$ rbenv local jruby-1.7.12
$ rbenv version
jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
上述のコマンド実行結果では、以下のような構成となる。
user <-- global 1.9.3-p547 (set by /home/user/.rbenv/version)
|-- hoge <-- local 2.0.0-p481 (set by /home/user/hoge/.ruby-version)
|-- piyo <-- local 2.1.2 (set by /home/user/piyo/.ruby-version)
`-- fuga <-- local jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
子ディレクトリでは親ディレクトリの環境が継承される。
$ cd
$ cd fuga
$ rbenv version
jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
$ mkdir fugafuga && cd $_
$ rbenv version
jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
$ mkdir fugafugafuga && cd $_
$ rbenv version
jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
fuga <-- jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
`-- fugafuga <-- jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
`-- fugafugafuga <-- jruby-1.7.12 (set by /home/user/fuga/.ruby-version)
rbenv, ruby-build の更新
望む Ruby のバージョンがリストに表示されない場合は ruby-build を更新する。
Linux の場合
$ cd ~/.rbenv
$ git pull
$ cd ~/.rbenv/plugins/ruby-build
$ git pull
MacOSX の場合
$ brew update
$ brew upgrade rbenv ruby-build