2011-03-17 13 views
15

के माध्यम से कई पैकेज स्थापित करना मैंने अभी वग्रेंट + शेफ की खोज की है और मैं नोड पर एकाधिक पैकेज स्थापित करने के लिए एक साधारण नुस्खा बनाने की कोशिश कर रहा हूं। मैंने सोचा था कि कुछ इस तरह काम कर सकता था (मैं पूरी तरह से नया तू रूबी):वाग्रेंट + शेफ

# (From cookbooks/MY_COOCKBOOK/recipes/default.rb) 
# Install required packages 
%w{build-essential libncurses5-dev openssl libssl-dev}.each do |pkg| 
    package pkg do 
    action :install 
    end 
end 

लेकिन यह निम्न त्रुटि के साथ विफल:

[default] [Thu, 17 Mar 2011 06:24:27 -0700] INFO: Installing package[libssl-dev] version 0.9.8k-7ubuntu8.5 
: stdout 
[default] /usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/mixin/command.rb:184:in `handle_command_failures': stderr 
[default] : : stderr 
[default] apt-get -q -y install libssl-dev=0.9.8k-7ubuntu8.5 returned 100, expected 0: stderr 
[default] (: stderr 
[default] Chef::Exceptions::Exec: stderr 
[default]) 
: stderr 
[default] from /usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/mixin/command.rb:131:in `run_command' 
    from /usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/mixin/command.rb:199:in `run_command_with_systems_locale' 
    from /usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/provider/package/apt.rb:68:in `install_package' 
    from /usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/provider/package.rb:60:in `action_install' 
[...] 

: stderr 
[default] [Thu, 17 Mar 2011 06:24:34 -0700] ERROR: package[libssl-dev] (/tmp/vagrant-chef/cookbooks-0/erlang-src/recipes/default.rb:22:in `from_file') had an error: 
apt-get -q -y install libssl-dev=0.9.8k-7ubuntu8.5 returned 100, expected 0 
/usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/mixin/command.rb:184:in `handle_command_failures' 
/usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/mixin/command.rb:131:in `run_command' 
/usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/mixin/command.rb:199:in `run_command_with_systems_locale' 
/usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/provider/package/apt.rb:68:in `install_package' 
/usr/lib/ruby/gems/1.8/gems/chef-0.9.12/bin/../lib/chef/provider/package.rb:60:in `action_install' 

मैं गए छाप मैं कुछ बुनियादी याद कर रहा हूँ यहां ...

उत्तर

17

यह पता चला कि मैं बस अपने Vagrantfile पर "apt" नुस्खा खो रहा था, जो आवश्यक संकुल को स्थापित करने से पहले एक उपयुक्त अद्यतन चलाता है। तो, उपर्युक्त सही था।

4

भविष्य में संदर्भ के लिए बस यह उत्तर जोड़ना। क्या तुमने कभी एक स्थिति है जहाँ आप कुछ package आदेशों कॉल करने से पहले apt-get update चलाना चाहिए में चलाने, तो आप इस टुकड़ा का सहारा कर सकते हैं:

execute "update package index" do 
    command "apt-get update" 
    ignore_failure true 
    action :nothing 
end.run_action(:run) 

और यह ठीक काम करता है।

+0

यदि आप संसाधनों पर run_action को कॉल किए बिना सामान्य रूप से कुकबुक का उपयोग कर रहे हैं, तो यह अनावश्यक है, बस किसी भी पैकेज संसाधनों का उपयोग करने से पहले उपयुक्त कुकबुक से डिफ़ॉल्ट नुस्खा शामिल करें और नुस्खा [apt-get अद्यतन चलाएं] (https: // github .com/opscode-पाक कला पुस्तकें/उपयुक्त/ब्लॉब/मास्टर/व्यंजनों/default.rb # L29)। – bschlueter

संबंधित मुद्दे