我想知道使用定义的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
在这种情况下根本不会运行。
答案 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
中。