rbenv を利用した Ruby 環境の構築
こんにちは、クラスメソッドの稲毛です。
複数バージョンの 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