无法以非root用户身份安装gem

时间:2011-09-17 18:19:59

标签: ruby linux ubuntu rubygems

我安装了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,所以我不确定是否会造成问题。

3 个答案:

答案 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