如何在不显式修改环境变量的情况下修改GEM_PATH

时间:2013-11-01 09:02:24

标签: ruby rubygems gem

我想知道使用定义的gems路径运行ruby的最佳方法没有明确设置GEM_PATH。

所以,基本上我想知道是否可以这样做:

ruby --some-magic-gem-path my/gems script.rb

而不是:

export GEM_PATH=my/gems
ruby script.rb
unset GEM_PATH

我的第一个想法是:“A-ha,我只能做类似ruby -r rubygems -e "Gem.path << 'my/gems'" script.rb”的事情,但后来我意识到script.rb在这种情况下根本不会运行。

1 个答案:

答案 0 :(得分:1)

或许可以使用Ruby中的-e标记来unshift您的文件夹,其中应搜索gem。

$ ruby -e 'Gem.path.unshift("~/bin")' -e "p Gem.path"
["~/bin", "/home/vgoff/.rvm/gems/ruby-2.0.0-p247", "/home/vgoff/.rvm/gems/ruby-2.0.0-p247@global"]

我认为这仍然不允许你运行程序。

因此,最好使用-r custom_gem_path.rb包含具有自定义需求的文件,而不是调用-e标志。

ruby -r./custom_gem_path.rb test.rb

这给了我与上面相同的输出,假设第一个-e参数中的内容存储在./custom_gem_path.rb中。