LoginSignup
11
11

More than 5 years have passed since last update.

他の bundler で管理されているプロジェクトのプログラムを起動する

Posted at

bundler は Gemfile の場所等を環境変数にセットする。これにより、同じプロジェクト内の Ruby プログラムを起動するときは bundler について考える必要なく system 等が使える。

しかし他の bundler で管理されているプロジェクトの Ruby プログラムを起動する場合、そちらの Gemfile を参照しなければならない。このような状況を解決するために Bundler.with_clean_env というメソッドが用意されている。

Bundler.with_clean_env do
  system 'cd /path/to/other/project; bundle exec bin/foo.rb'
end

また、systemexec 用に Bundler.clean_system, Bundler.clean_exec というヘルパメソッドも用意されている。

bundle exec 時の環境変数の変更については bundle-exec の man に書かれている。
http://bundler.io/v1.3/man/bundle-exec.1.html

このことを知らないと、Gemfile に書かれている gem の require になぜか失敗する、という挙動に悩まされることになる…

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11