2013-11-01 128 views
1

我想知道什麼是最好的方式來運行ruby,通過定義的路徑運行ged 而不需要顯式地設置GEM_PATH。如何在不明確修改環境變量的情況下修改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

也許在Ruby中使用-e標誌到unshift您的文件夾應該搜索寶石。

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

我想雖然這仍然不會讓你運行程序。

因此,使用-r custom_gem_path.rb而不是調用-e標誌,可能會更好地包含具有您的自定義需要的文件。

ruby -r./custom_gem_path.rb test.rb 

這讓我在第一-e爭論什麼是存儲在./custom_gem_path.rb與上述相同的輸出,給定的。

+0

謝謝你的回答。所以,基本上這意味着沒有比修改全局環境變量更好,更優雅的了。 – shabunc

相關問題