2013-09-24 173 views
2

我试图从fnichol/chef-rvm运行rvm::user配方时遇到问题。我使用厨师和一个流浪者箱子。 RVM安装罚款,但每次厨师尝试安装红宝石时,出现此错误:rvm食谱无法在流浪者中安装红宝石

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 
  • 环境细节:
    • 流浪版本: 1.2.7
    • 流浪vm:precise32
    • RVM版本:1.22.11
    • 厨师RVM裁判:59dc482

回答

3

原来,流浪在非交互式/非TTY会话中运行的厨师。 sudo命令不喜欢在非交互式会话中运行,并且在尝试安装依赖关系时(通过ubuntu中的apt-get)导致rvm失败。

可以允许须藤加入这/etc/sudoers到非交互方式运行:

vagrant ALL= (ALL:ALL) NOPASSWD: ALL 

一旦我加了这个,厨师成功安装rvm::user配方。

+0

我认为这是对流浪者盒默认设置 – mpapis

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 

没有为我的方案工作。

我相信适合厨师的食谱可以更新,这可以修复旧版和不适合版本的问题。

我收到错误消息是

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]'