Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在运行其他ruby应用程序时更改捆绑包环境_Ruby_Rubygems_Bundler - Fatal编程技术网

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

如何在运行其他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.

在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.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'