我安装了RVM,它是以root用户身份安装的。权限是:
drwxrwsr-x 23 root rvm 4096 2011-09-17 15:22 rvm
以下是我尝试将gem安装为sudo的示例:
ubuntu@ip-10-2-15-243:/usr/local/rvm$ sudo gem install bundler
Successfully installed bundler-1.0.18
1 gem installed
Installing ri documentation for bundler-1.0.18...
Installing RDoc documentation for bundler-1.0.18...
ubuntu@ip-10-2-15-243:/usr/local/rvm$ gem list
*** LOCAL GEMS ***
rake (0.9.2)
奇怪的是,如果我“sudo su - ”然后以root身份安装gem,它就可以了。 ubuntu如何在sudoers文件中列出是一个问题吗?
ubuntu ALL=(ALL) NOPASSWD:ALL
我确实用VIM编辑了sudoers,它告诉我使用VISUDO,所以我不确定是否会造成问题。
答案 0 :(得分:1)
尝试使用rvmsudo
代替sudo
。
如果这是在厨师运行的上下文中,您可以使用此资源:
execute "gem-install-bundler" do
user "root"
command <<-COMMAND
bash -c '
source {{{/path/to/rvm}}}
rvm use {{{ruby-version}}}
gem install bundler
'
COMMAND
end
答案 1 :(得分:0)
可能没有sudo加载RVM环境。
尝试跑步:
sudo -i gem install bundler
-i是:“模拟初始登录”
很抱歉,我现在无法自行核实。
答案 2 :(得分:0)
我遇到了同样的问题,这对我有用。事实证明,所有其他方法都安装在全局gemset中,这就是命令返回时没有错误的原因
script 'bundle gems' do
user 'root'
code <<-EOH
. "/usr/local/rvm/scripts/rvm"
cd /your/directory
rvm rvmrc trust
BUNDLE_WITHOUT=test bundle install
exit $?
EOH
interpreter 'bash'
end