rbenv でも複数のバージョンの Ruby をインストール・切り替えが出来ると聞いたので試してみた。
rbenv と ruby-build のインストール
予め必要とされるライブラリーのインストール。
$ sudo apt-get install build-essential libreadline-dev libssl-dev zlib1g-dev
次に必要とされる rbenv コマンドと ruby-build コマンドをインストールする。rbenv はローカル環境にインストールするけど、ruby-build コマンドはシステムにインストールする。
rbenv のインストール
rbenv は git リポジトリーからインストールする。
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
.bashrc もしくは .zshrc に次のコードを追記:
export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
ruby-build のインストール
ruby-build も git リポジトリーからインストールする。
$ git clone git://github.com/sstephenson/ruby-build.git $ cd ruby-build $ sudo ./install.sh
以上で、rbenv と ruby-build のインストールは終了。
Ruby のインストール
rbenv は rvm と違って ruby のインストールをデフォールトで行なわない。
現在最新の Ruby 2.0.0-p0 と 1.9 系最後の 1.9.3-p392 をインストールする。
まず、rbenv でインストール可能な ruby を確認。
$ rbenv install -l Available versions: 1.8.6-p383 1.8.6-p420 1.8.7-p249 1.8.7-p302 1.8.7-p334 1.8.7-p352 1.8.7-p357 1.8.7-p358 1.8.7-p370 1.8.7-p371 1.9.1-p378 1.9.2-p180 1.9.2-p290 1.9.2-p318 1.9.2-p320 1.9.3-dev 1.9.3-p0 1.9.3-p125 1.9.3-p194 1.9.3-p286 1.9.3-p327 1.9.3-p362 1.9.3-p374 1.9.3-p385 1.9.3-p392 1.9.3-preview1 1.9.3-rc1 2.0.0-dev 2.0.0-p0 2.0.0-preview1 2.0.0-preview2 2.0.0-rc1 2.0.0-rc2 2.1.0-dev jruby-1.5.6 jruby-1.6.3 jruby-1.6.4 jruby-1.6.5 jruby-1.6.5.1 jruby-1.6.6 jruby-1.6.7 jruby-1.6.7.2 jruby-1.6.8 jruby-1.7.0 jruby-1.7.0-preview1 jruby-1.7.0-preview2 jruby-1.7.0-rc1 jruby-1.7.0-rc2 jruby-1.7.1 jruby-1.7.2 jruby-1.7.3 maglev-1.0.0 maglev-1.1.0-dev rbx-1.2.4 rbx-2.0.0-dev rbx-2.0.0-rc1 ree-1.8.6-2009.06 ree-1.8.7-2009.09 ree-1.8.7-2009.10 ree-1.8.7-2010.01 ree-1.8.7-2010.02 ree-1.8.7-2011.03 ree-1.8.7-2011.12 ree-1.8.7-2012.01 ree-1.8.7-2012.02
rvm と同じく数が多いのも嬉しい。今のぼくは、素の ruby しかインストールしないので、それほどありがたみはないけれど...
少し嫌なのは、rvm と違ってパッチ番号まで指定しないといけないことかな。rvm なら 1.9.3 と指定すれば Ruby 1.9.3 の最新パッチがインストールされたけど、rbenv は 1.9.3-p392 と指定しないといけない。面倒。
先に書いた通り 2.0.0 と 1.9.3-p392 をインストールする。インストールには rbenv install を使う。
$ rbenv install 2.0.0-p0 Downloading ruby-2.0.0-p0.tar.gz... -> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz Installing ruby-2.0.0-p0... Installed ruby-2.0.0-p0 to /home/masayuki/.rbenv/versions/2.0.0-p0 $ rbenv install 1.9.3-p392 ...
Ruby の変更
今、使っている ruby の確認。
$ rbenv version system (set by /home/ataka/.rbenv/version) $ ruby --version ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]
おやおや。昔、システムにインストールした Ruby が動いてる。
今、rbenv でインストールしている ruby のバージョンを確認。
$ rbenv versions * system (set by /home/ataka/.rbenv/version) 1.9.3-p392 2.0.0-p0
rbenv global でバージョンを指定。
$ rbenv global 2.0.0 rbenv: version `2.0.0' not installed $ rbenv global 2.0.0-p0 $ rbenv rehash $ rbenv version 2.0.0-p0 (set by /home/ataka/.rbenv/version) $ ruby --version ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux]
バージョン番号だけじゃ Ruby の変更は出来ないのか。ちゃんとパッチ番号まで含めて変更。rbenv rehash を忘れずに。また railsなど、コマンドが付いてくるタイプのgemをインストールしたとき、rbenv rehashを実行する必要がある
とのこと。
特定のディレクトリーでの Ruby 指定
rbenv --local を使うと、そのディレクトリー以下での Ruby のバージョンを指定できる。
$ cd ~/project/first-project/ $ rbenv local 2.0.0-p0
bundler コマンドの --path オプションを併用することで、特定のディレクトリー下の gem も指定することができる。
$ bundle install --path vendor/bundle $ bundle list
あとがき
rvm は cd などの shell のコマンドを上書きすると聞き、不安になったので rbenv をインストールしてみた。マシンによっては rvm が残ってるものもあるので、移行しなきゃなあ。
rbenv rehash の存在が面倒だけど、それ以外は rvm よりスマートな気がする。
No comments:
Post a Comment