1

我想知道在不明确设置 GEM_PATH的情况下,使用已定义的 gems 路径运行 ruby​​ 的最佳方法是什么。

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

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

而不是这个:

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

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

4

1 回答 1

1

也许使用-eRuby 中的标志到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.

于 2013-11-01T10:35:42.713 回答