BLOGTIMES
2012/01/29

rbenv で複数のrubyをインストールして切り換える

  ruby 
このエントリーをはてなブックマークに追加

Ruby はバージョンによって微妙に挙動が違ったりするので、複数のバージョンを入れて切り換えてテストする必要があるときにはバージョンごとに VM で環境構築をしていました。最近、いろいろ調べてみたところ rbenv というツールを使えば同じマシンに ruby を複数インストールして切り換えて使うことができるようなのでちょっとインストールに挑戦してみました。

インストールしたのは、 rbenv と ruby-build の2つで、環境は CentOS 5.x 系です。

以下、インストールメモ。

下準備

git が必要なのでインストールしておきます。
今回は以前に EPEL を使えるようにしてあったので、yumで入れてしまいます。

yum install git

rbenv のインストール

今回のメインの rbenv をインストールします。
ほぼサイトのマニュアルに書いてある手順通りです。

cd git clone git://github.com/sstephenson/rbenv.git .rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(rbenv init -)"' >> ~/.bash_profile exec $SHELL

ruby-build のインストール

ruby-build を入れると rbenv install というコマンドで ruby が一撃でインストールできるようになるみたいなので先にこちらを入れてしまいます。
本来は /usr/local 以下にインストールするのが本筋のようですが、今回は rbenv と一緒のディレクトリに放り込んでしまいました。

cd mkdir working cd working git clone git://github.com/sstephenson/ruby-build.git cd ruby-build PREFIX=~/.rbenv ./install.sh

個別の ruby 環境のインストール

今回は 1.9.2-p290 と 1.9.3-p0 をインストールしてみます。
コマンド一撃なので楽チンです。

cd rbenv install 1.9.2-p290 rbenv install 1.9.3-p0

環境を切り換えてみる

さっそく環境の切り替えをやってみます。

$ ruby -v ruby 1.8.5 (2006-08-25) [i386-linux] $ rbenv versions 1.9.2-p290 1.9.3-p0 $ rbenv global 1.9.3-p0 $ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux] $ gem list *** LOCAL GEMS *** bigdecimal (1.1.0) io-console (0.3) json (1.5.4) minitest (2.5.1) rake (0.9.2.2) rdoc (3.9.4) $ rbenv global 1.9.2-p290 $ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] $ gem list *** LOCAL GEMS *** minitest (1.6.0) rake (0.8.7) rdoc (2.5.8) $ rbenv global system $ ruby -v ruby 1.8.5 (2006-08-25) [i386-linux]

最初、デフォルトの環境への戻し方が分からなくて困りましたが、 rbenv global system のように system と指定すればいいようです。また、 rbenv local とすれば、そのディレクトリでは特定のバージョンを使うということもできるみたいです。ちゃんと gem の環境も切り替わってくれていますし、これは便利ですね。

参考

2014/01/05 追記

このインストール方法で構築した rbenv 環境を最新にアップデートする方法をまとめました。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4735
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン