如何在运行其他ruby应用程序时更改捆绑包环境
在a/test.rb(由用户运行)中运行b/test.rb时找不到b的gems,直接在/home/user/b下运行test.rb是可以的如何在运行其他ruby应用程序时更改捆绑包环境,ruby,rubygems,bundler,Ruby,Rubygems,Bundler,在a/test.rb(由用户运行)中运行b/test.rb时找不到b的gems,直接在/home/user/b下运行test.rb是可以的 #/home/user/a/test.rb `/home/user/b/test.rb` # not found b's gems 如果使用sudo-u用户运行也可以 如何找到b的gems并运行它,除了使用sudo-u user您需要在终端中运行: #/home/user/a/test.rb `sudo -u user /home/user/b/test.
#/home/user/a/test.rb
`/home/user/b/test.rb` # not found b's gems
如果使用sudo-u用户运行也可以
如何找到b的gems并运行它,除了使用sudo-u user
您需要在终端中运行:
#/home/user/a/test.rb
`sudo -u user /home/user/b/test.rb` # it's OK
并运行:
sudo gem list
要查看两个宝石列表,我怀疑您正在寻找:
还有clean_exec
和clean_system
包装system
和exec
,在这种情况下可能更简单(因为您不使用反勾号的结果):
是的,在a/test.rb中运行gem list
,列出a的gem,所以?您需要在终端上运行,而不是在脚本中运行。“gem list”命令为运行系统的用户显示系统中安装的本地gem。这些宝石是你可以在脚本中使用的唯一宝石。我建议在列表中没有的情况下运行“gem-install-name-of-the-the-the-the-the-the-the-the-the-the-the-the-gem-you-want”。
gem list
#/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
Bundler.clean_system '/home/user/b/test.rb'