2013-09-24 133 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]'