rvm cookbook无法在流浪汉中安装红宝石

时间:2013-09-24 21:41:03

标签: rvm chef vagrant

尝试从fnichol/chef-rvm运行rvm::user食谱时,我遇到了一些问题。我正在使用厨师和Vagrant盒子。 rvm安装得很好,但是每当厨师尝试安装ruby时,它都会失败并出现此错误:

WARN: Failed to install rvm_ruby[ruby-1.9.3-p448]. Check logs in /log/ruby-1.9.3-p448

这是我的Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box       = 'precise32'
  config.vm.box_url   = 'http://files.vagrantup.com/precise32.box'

  config.vm.provision "chef_solo" do |chef|
    chef.add_recipe "rvm::vagrant" 
    chef.add_recipe "rvm::user"

    chef.json = {
      :rvm => {
        :user_installs => [
           {
              :user => "vagrant",
              :default_ruby => "1.9.3",
              :rubies => ["1.9.3"],
              :global_gems => [
                  { :name => 'bundler' }
              ],                   
           }
        ]
      }
  end
end
  • 环境详情:
    • Vagrant版本:1.2.7
    • Vagrant vm:precise32
    • rvm version:1.22.11
    • chef-rvm ref:59dc482

2 个答案:

答案 0 :(得分:3)

事实证明,Vag​​rant在非交互式/非tty会话中运行厨师。 sudo命令不喜欢在非交互式会话中运行,并且在尝试安装依赖项时导致rvm失败(通过ubuntu中的apt-get)。

您可以通过将此添加到/etc/sudoers

来允许sudo以非交互方式运行
vagrant  ALL= (ALL:ALL) NOPASSWD: ALL

我添加了这个后,厨师成功安装了rvm::user食谱。

答案 1 :(得分:0)

我的设置要复杂得多,但错误是一样的。最终我发现添加适当的厨师食谱修复了一切。

chef.add_recipe "apt" 
chef.add_recipe "rvm::vagrant" 
chef.add_recipe "rvm::user"

> Run List is [recipe[apt], recipe[curl], recipe[rvm::vagrant], recipe[rvm::user]]

添加行

vagrant ALL=(ALL:ALL) NOPASSWD: ALL 

对我的情况不起作用。

我相信apt大厨配方运行apt更新,修复了旧版和不匹配版本的问题。

我收到的错误消息是

Error executing action `install` on resource 'package[libxml2-dev]'
apt-get -q -y install libxml2-dev=2.7.8.dfsg-5.1ubuntu4.1 returned 100, expected 0
....
Error executing action `install` on resource 'rvm_ruby[2.1.1]'