rbenv - bundler と組み合わせてローカルにインストール
複数のアプリケーションでバージョン違いのライブラリを
入れるなどしたい場合、bundle を組み合わせて使います。
rails 4.0.2 を vendor/bundle 以下にインストールする例
Gemfile を作成
source "https://rubygems.org" gem "rails", "4.0.2"
bundle install
vendor/bundle 以下にインストールします
$ bundle install --path=vendor/bundle --binstubs=vendor/bin
これで 実行できるようになります。
$ vendor/bin/rake --version rake, version 10.1.1
vendor/bin は PATH に追加されないので、コマンド名のみで実行すると、
.rbenv 以下にインストールしたもの(以下、グローバルといいます)を
使用してしまうので注意してください。
$ rake --version rake, version 10.1.0
rbenv-binstubs を使ってプロジェクト毎にbinのパスをかえる
rbenv-binstubs を使うと、
--binstubs で指定したディレクトリのパスを探してくれます。
$ rake --version rake, version 10.1.1
のように実行できるようになります。
インストール
$ cd ~/.rbenv/plugins $ git clone https://github.com/ianheggie/rbenv-binstubs.git
これだけ。
bundle でインストールしたプログラムのパスを検索するには、
rbenv which を使います。
コマンド名のみで実行したときに、binstubs で指定したものか、
グローバルにインストールしたものかチェックできます。
$ rbenv which rake /home/hogehoge/railsapp/vendor/bin/rake
binstubs で指定したものを除外する場合は、DISABLE_BINSTUBS=1
を指定します。
$ DISABLE_BINSTUBS=1 rbenv which rake /home/hogehoge/.rbenv/versions/2.1.0/bin/rake