मैंने बस सुबह के बेहतर हिस्से को इस चेतावनी के माध्यम से काम करते हुए बिताया। यह फिक्स मैक ओएस लायन का उपयोग करने वाले लोगों के लिए है। का उपयोग कर ऊपर तय
bundle config build.nokogiri --with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib --with-xslt-dir=/opt/local
MacPorts के माध्यम से स्थापित libxml2 के साथ हिम तेंदुए के लिए है।
लायन के साथ, libxml2 को बूटस्ट्रैप प्रक्रिया के हिस्से के रूप में लोड किया गया है। बावजूद इसके कि libxml2 Nokogiri इंगित कर रहा है, libxml2 के लिए लायन सिस्टम डिफ़ॉल्ट लाइब्रेरी का उपयोग रनटाइम पर किया जाएगा। सिंह /usr
(नहीं /usr/local
) में पाया libxml2.2.7.3 का उपयोग करता है ।
जैसा कि कई अन्य स्थानों पर उल्लेख किया गया है, कोई भी चेतावनी को अनदेखा कर सकता है। अगर, मेरी तरह, चेतावनी आपको पागल कर देती है, तो आप यह कर सकते हैं:
bundle config build.nokogiri --with-xml2-dir=/usr --with-xslt-dir=/opt/local --with-iconv-dir=/opt/local
दिलचस्प बात यह है कि यदि आप nokogiri -v
कमांड लाइन पर टाइप करते हैं तो आपको विपरीत चेतावनी मिलेगी:
WARNING: Nokogiri was built against LibXML version 2.7.3, but has dynamically loaded 2.7.8
यह बताता है कि कैसे libxml2 को लोड किया जा रहा है, रूबी और रेल के साथ सिस्टम लोड libxml2 और कमांड लाइन को पर्यावरण पथ से libxml2 का उपयोग करके लोड किया जा रहा है। वैसे भी, यह मेरे लिए त्रुटि को शांत करता है।
मैं इसे फिर से कहूंगा - यह केवल शेर के लिए है। पिछला फिक्स स्नो लेपर्ड के लिए काम करेगा।
यह उत्तर का अंत है। यहाँ पढ़ना बंद करो।
ठीक है, आपने पढ़ना बंद नहीं किया ... अच्छा ...
सिफारिश नहीं की गई!!!!!!
आपको चेतावनी दी गई है। आप सत्यापित कर सकते हैं कि Mac OSX libxml2 को अक्षम करके libxml2 लाइब्रेरी को उसके बूटस्ट्रैप में लोड कर रहा है /usr/lib
। के सभी संस्करणों को कॉपी की तरह कुछ करो libxml2*.dylib
करने के लिए libxml2*.dylib.old
(मेरी मशीन पर यह था libxml2.2.7.3
, libxml2.2
और libxml2
)।
आपके द्वारा ऐसा करने के बाद, नोकोगिरी चलाने से कोई त्रुटि नहीं होगी। ऐसा इसलिए है क्योंकि यह लोड किए गए libxml2 को नहीं ढूंढ सकता है और अब अंतत: खोजने libxml2.2.7.8
में पर्यावरण पथ का अनुसरण करेगा /opt/local
।
लेकिन आप पुरानी libxml फ़ाइलों को वापस कॉपी नहीं कर पाएंगे। ऐसा इसलिए है क्योंकि OS को libxml2 की आवश्यकता है जो कि बूटस्ट्रैप में लोड किया गया था।
बिजली बंद करना और फिर से बिजली देना आपकी मशीन को बंद कर देगा। लॉगिन स्क्रीन लटका और लटका और लटका होगा। एकल-उपयोगकर्ता मोड में पावर ऑफ और पावर फिर से (होल्ड Command- Sरिबूट करते समय)। आप बूटस्ट्रैप को घटित होते हुए देख सकते हैं। कम और निहारना, यह एक त्रुटि फेंकता है कि यह libxml2 लोड नहीं कर सकता है और फिर काम करना बंद कर देता है।
बिजली बंद और फिर से बिजली। इस बार रिकवरी मोड में बूट करें (या तो होल्ड करें Command- Rया होल्ड करें Optionऔर फिर रिकवरी डिस्क का चयन करें)। पुनर्प्राप्ति मोड में टर्मिनल खोलें ( utilities/terminal
)। /usr/lib
अपने HD (प्रयास /Volumes/Macintosh\ HD/usr/lib
) पर माउंट करें और libxml2 फ़ाइलों को वापस कॉपी करें। रिबूट और सब ठीक हो जाएगा।
brew remove --force libxml2
bundle config --delete build.nokogiri
gem uninstall nokogiri libxml-ruby
bundle