rbenv
rbenvとは
rbenvとは、Sam Stephenson(37signals)氏が作成したRubyバージョン管理ツールです。
例えば、普段はRuby2.3.0を使っているが急遽Ruby1.8.7を使わなければならない時など、プロジェクトごとにRubyのバージョンをrbenvで切り替えることができます。
Rubyバージョン管理ツールとして有名なRVM(RubyVersionManager)と比べて、rbenvは少ない機能で軽快に動作する特徴があります。
ただし、サポートしているRubyの種類がRVMより少ないことが欠点です。
また、rbenv本体にはRubyのビルド機能は用意されていないため、別途ruby-buildというツールを利用します。
rbenvをインストールする
RVMの削除
競合が発生する場合がありますので、rvmを削除します。
rvmがインストールされていなければ実行の必要はありません。
$ rvm implode
rbenvの取得
rbenvをgitから取得します。
ここでは、保存先はユーザのホームディレクトリとします。
$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
ruby-buildをインストールする
バージョン管理を効率的にするために、ruby-buildをインストールします。
$ git clone git://github.com/sstephenson/ruby-build.git
$ cd ruby-build
$ ./install.sh
パスを設定する
rbenvコマンドへのパスを環境変数に設定しておきます。
「.bash_profile」または「.bashrc」に記載することが一般的です。
$ export PATH="$HOME/.rbenv/bin:$PATH"
Rubyのインストール
インストール可能なRubyのバージョンをリスト表示するには以下のコマンドを実行する。
$ rbenv install --list
Rubyのインストール
任意のバージョンを導入します。
$ rbenv install 2.3.0
$ rbenv rehash
なお、railsなどコマンドが付属されるgemをインストールした場合、rbenvを更新する必要があります。
「rbenv rehash」コマンドでrbenvの「~/.rbenv/shims/」以下のファイルを更新します。
Rubyのアンインストール
バージョンを指定してアンインストールします。
$ rbenv uninstall 2.1.5
Ruby バージョンの設定
Ruby のバージョン確認
インストール済み Ruby のバージョンがリスト表示されます。
カレントディレクトリで有効な Ruby バージョンにはアスタリスク( * )が表示されます。
$ rbenv versions
Ruby バージョンの選択
デフォルトで使うRubyのバージョンを指定するには「rbenv global <version>」を使用します。
$ rbenv global 2.3.0
$ rbenv rehash
特定ディレクトリのみのバージョン指定方法について
環境毎にバージョンを使い分ける場合には、任意のディレクトリを作成して「rbenv local <version>」コマンドを実行します。
$ rbenv local 1.8.7
その他
rbenv, ruby-build の更新
利用したいRubyバージョンがリストに表示されない場合は ruby-build を更新します。
$ cd ~/.rbenv
$ git pull
$ cd ~/.rbenv/plugins/ruby-build
$ git pull
rbenv利用時にruby -vで古いバージョンのRubyが呼ばれる場合の対処
環境変数(PATH)の設定ミスが原因です。
まず、rubyのパスどのように設定されているか確認してみます。
以下のように表示されれば、rbenv で入れた ruby ではなくて、システムのデフォルトの Ruby が使われている状態です。
$ which ruby
/usr/bin/ruby
.bash_profileに以下を記載します。
eval "$(rbenv init -)"
.bashrcに以下を記載します。
export PATH=$HOME/.rbenv/bin:$PATH
その後、.bash_profileの変更を反映するとパスが変更されます。
$source ~/.bash_profile
$ which ruby
/home/user11/.rbenv/shims/ruby