2013-03-14 5 views
5

मैं एक महाराज नुस्खा में कोहरे मणि स्थापित करने के लिए हालांकि मणि स्थापना देशी संकुल स्थापित किए जा रहे पहले तो मणि स्थापना विफलमहाराज निष्पादन के दौरान देशी एक्सटेंशन पैकेज के बाद एक रत्न स्थापित कर रहा है

package "libxslt-dev" 
package "libxml2-dev" 

chef_gem "fog" 

यह तब होता है कोशिश कर रहा हूँ उत्पादन

[Thu, 14 Mar 2013 13:04:30 +0000] INFO: Processing chef_gem[fog] action install (ebs4000::update_volumes line 23) 
[Thu, 14 Mar 2013 13:04:52 +0000] ERROR: Running exception handlers 
[Thu, 14 Mar 2013 13:04:52 +0000] FATAL: Saving node information to /var/cache/chef/failed-run-data.json 
[Thu, 14 Mar 2013 13:04:52 +0000] ERROR: Exception handlers complete 
[Thu, 14 Mar 2013 13:04:52 +0000] ERROR: Gem::Installer::ExtensionBuildError: chef_gem[fog] (cookbook::recipe line 4) had an error: Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /usr/bin/ruby1.8 extconf.rb 
checking for libxml/parser.h... no 
----- 
libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. 
----- 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    ... 
    --with-pkg-config 
    --without-pkg-config 


Gem files will remain installed in /var/lib/gems/1.8/gems/nokogiri-1.5.6 for inspection. 
Results logged to /var/lib/gems/1.8/gems/nokogiri-1.5.6/ext/nokogiri/gem_make.out 

मैं महाराज संसाधनों की सूचना विशेषता के बारे में पता कर रहा हूँ, लेकिन अभी भी ठीक से इस रन मिल सकता है।

तो मैं वास्तव में मूल पैकेज को स्थापित करने के लिए निष्पादन आदेश को कैसे मजबूर कर सकता हूं और फिर उसी दौड़ में मणि को स्थापित कर सकता हूं।

नोट: पैकेज की मैन्युअल स्थापना एक विकल्प नहीं है, क्योंकि हम चाहते हैं कि नए नोड्स के लिए पूरी तरह से स्वचालित हो।

उत्तर

7

यहाँ उल्लेख किया, संसाधन संग्रह चरण के शुरू में निर्भरता स्थापित करने की कोशिश नहीं क्यों: OPSCODE wiki: Run Resources from the Resource Collection

तो अपने नुस्खा दिखाई देगा:

xsltdev = package "libxslt-dev" do 
    action :nothing 
end 

xmldev = package "libxml2-dev" do 
    action :nothing 
end 

xsltdev.run_action(:install) 
xmldev.run_action(:install) 

chef_gem "fog" 
+0

धन्यवाद, यह चाल है! – vervas

+0

आप संकुल की एक सूची भी इंस्टॉल कर सकते हैं: '% w {libxslt-dev libxml2-dev}। प्रत्येक करें | pkg | पी = पैकेज pkg कार्रवाई करते हैं: कुछ भी नहीं अंत p.run_action (: स्थापित) end' – Brett

0

ऐसा लगता है कि आप पहले से ही कर रहे हैं उस। व्यंजनों को क्रम में निष्पादित किया जाता है, इसलिए आपको अच्छा होना चाहिए।

अपने लॉग में, आप केवल उस बिंदु से क्या हुआ है जहां शेफ fog स्थापित करने का प्रयास करता है। क्या आपने सत्यापित किया है कि lib संकुल के संस्थापन उस से पहले नहीं आ रहे हैं? हो सकता है कि आपने पैकेज नाम गलत प्राप्त कर चुके हों, या आपको पैकेज प्रबंधक के कैश को पहले अपडेट करना होगा।

+0

मैं क्योंकि पैकेज आदेशों अभी तक नहीं चला रहे हैं लॉग करने से पहले शामिल नहीं किया। मेरे लिए ऐसा लगता है कि संसाधन संग्रह चरण में मणि स्थापित किया जा रहा है, जबकि इसके बाद आने वाले निष्पादन चरण पर पैकेज स्थापना, इसलिए यही समस्या आईएमएचओ होती है। – vervas

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