如何在运行其他ruby应用程序时更改捆绑环境

时间:2014-11-21 14:27:07

标签: ruby rubygems bundler

#/home/user/a/test.rb
`/home/user/b/test.rb` # not found b's gems

在/ test.rb(由用户运行)中运行b / test.rb时无法找到b的宝石,并且直接在/ home / user / b下运行test.rb就可以了。

#/home/user/a/test.rb
`sudo -u user /home/user/b/test.rb` # it's OK

如果使用sudo -u user运行,则可以。

如何找到b&#39的宝石并运行它,除了sudo -u user

2 个答案:

答案 0 :(得分:1)

我怀疑您正在寻找Bundler.with_clean_env

#/home/user/a/test.rb
Bundler.with_clean_env do
  # this assumes b/test.rb sets up Bundler itself
  `/home/user/b/test.rb`
end

还有clean_execclean_system包裹systemexec,在这种情况下可能更简单(因为你不使用反引号的结果) ):

Bundler.clean_system '/home/user/b/test.rb'

答案 1 :(得分:0)

您需要在终端中运行:

sudo gem list

并运行:

gem list

查看两个宝石列表