2014-05-01 5 views
6
में

Install install करने fails fails showing:Nokogiri gem OS X Mavericks

checking for iconv_open() in iconv.h... no 
checking for iconv_open() in -liconv... no 
checking for iconv_open() in -liconv... no 
checking for libiconv_open() in iconv.h... no 
checking for libiconv_open() in -liconv... no 
checking for libiconv_open() in -liconv... no 
libiconv is missing. 

However, nokogiri चलो पर mkmf.log looking, निम्नलिखित errors दिखाया जाता है:

ld: warning: ignoring file /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib 

ld: warning: ignoring file /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib 

ld: warning: ignoring file /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib 

मुझे है और यह है xcode कमांड उपकरण स्थापित। मेरे ~/.bash_profile 64 बिट द्वारा मजबूर संकलन किया गया है: निर्यात ARCHFLAGS = "- मेहराब x86_64"

मैं है libxml2, libxslt, और Homebrew के माध्यम से स्थापित libiconv, और प्रत्येक जुड़ा हुआ है। मैंने इन सभी को ARCHFLAG के बिना .bash_profile में इंस्टॉल करने का प्रयास किया है।

मैंने एप्पल-जीसीसी 42 स्थापित किया है और लिंक किया है, जैसा कि मैंने पाया है।

मैंने libxml2, libxslt, और libiconv/usr/local/cellar/में libiconv को पास करके नोकोगिरी स्थापित करने का प्रयास किया है, लेकिन इंस्टॉल अभी भी ऊपर की तरह ही त्रुटियों के साथ विफल रहता है।

मैंने कम से कम एक दिन बर्बाद कर दिया है - बस एक रूबी मणि स्थापित करने की कोशिश कर रहा है। मैं वास्तव में वास्तव में विकास के लिए वापस जाना पसंद करेंगे।

क्या कोई मदद कर सकता है?

उत्तर

21

वास्तव में मणि स्थापित करने से पहले NOKOGIRI_USE_SYSTEM_LIBRARIES=1 सेट करना मेरे लिए चाल है।

सारांश: libxml2, libxslt और libiconv स्थापित करने के लिए
$ gem uninstall nokogiri

  • उपयोग Homebrew अगर जरूरत:

    • पहले से स्थापित हैं, तो मणि की स्थापना रद्द
      $ brew install libxml2 libxslt libiconv

    • स्थापित करें मणि निर्दिष्ट एनजी पुस्तकालयों के लिए रास्तों के खिलाफ जुड़े होने की:
      $ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"

  • +5

    +1 'NOKOGIRI_USE_SYSTEM_LIBRARIES = 1 मणि इंस्टॉल नोकोगिरी 'मेरे लिए स्थापित करने के लिए पर्याप्त था। यह वास्तव में तय किया जाना चाहिए, स्थापित करना मुश्किल नहीं होना चाहिए। मैं असली नोकोगिरी आरे का उपयोग करता हूं जैसे कि दर्जन आरी और डोवेट्स को काटने के लिए उनका उपयोग करना यह बहुत परेशानी नहीं है। इस समाधान के लिए –

    +0

    +1, मेरे लिए भी काम किया (आधिकारिक ट्यूटोरियल नहीं था), हालांकि यहां लिंक है: http://nokogiri.org/tutorials/installing_nokogiri.html – herrjeh42

    +0

    यह मेरे लिए काम करता है। –

    0
    • जांच करें कि homebrew उचित XCode कमांड लाइन उपकरण के साथ सही ढंग से स्थापित किया गया है।

    काढ़ा चिकित्सक

    • तुम भी XCode> प्राथमिकताएं
    वैध कमांड लाइन उपकरण इंस्टॉल होने के बाद

    के माध्यम से जांच कर सकते हैं, मैं के बाद OSX मेवरिक उन्नयन का सामना करना पड़ा nokogiri त्रुटि को हल करने में सक्षम था।

    यह भी पाया गया कि कुछ 'ब्रू' पैकेज ओएस एक्स माउंटेन शेर के बाद मैवरिक अपग्रेड के बाद पुराने हो गए थे। (उदाहरण के लिएक्यूटी, PostgreSQL)

    2
    • एक आत्म निहित समाधान के रूप में, मैं एक साथ this ruby script as a gist डाल दिया है कि किसी भी हाल ही में मैक ओएस एक्स/Homebrew स्थापना के साथ काम करना चाहिए।
    • आप मूल रूप से पुरानी ऐप्पल के बजाय होमब्रू के पुस्तकालयों पर निर्भर हैं। सरल।
    • आप तर्क के रूप में bundle पास करके बंडलर (gem के बजाय) को कॉन्फ़िगर और इंस्टॉल कर सकते हैं।

    इसे देखें, और कृपया योगदान करने में संकोच न करें - शायद हम इसे ठीक करने के लिए इसे एक स्क्रिप्ट में उबालें!

    +1

    स्क्रिप्ट एक त्रुटि फेंकता है, मैंने इसे गिटूब पर सबमिट किया। –

    +1

    मैं आपको इस पर ध्यान देने के लिए सराहना करता हूं; यह तय किया गया है और अब सभी के लिए काम करना चाहिए (ऊपर)। –

    +0

    धन्यवाद, मैं इसे फिर से जांचूंगा, लेकिन उस समय मेरी त्रुटियों की जड़ को रूबी के संस्करण के साथ करना था और इसलिए मैं इसे आसानी से आजमा नहीं सकता! –

    0

    यहाँ क्या मेरे लिए काम किया है:

    1. यदि आपने ऐसा नहीं किया है, तो XCode डेवलपर उपकरण स्थापित: homebrew $ xcode-select --install
    2. उपयोग स्थापित करने के लिए (या फिर से स्थापित) libxml2, libxslt और libiconv: $ brew install libxml2 libxslt libiconv
    3. स्थापित nokogiri: gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

    मैं समाधान मैं एक unmerged pull request में की जरूरत को अपडेट नहीं मिला नोकोगिरी ट्यूटोरियल। मैं अनुशंसा करता हूं कि अगर कोई और इस मुद्दे से मुकाबला करता है और यहां समाधान को समाप्त कर देता है, तो यह देखने के लिए कि 0 ने किसी को नोकोगिरी ट्यूटोरियल पेज पर निर्देशों को अपडेट किया है या नहीं, pull request list देखें।

    0

    से github page सबसे पहले, आप चाहिए: --install फिर से स्थापित nokogiri xcode-चयन करें और फिर। यह मेरे लिए काम करता था जबकि एक और सुझाव नहीं था। मनाइए कि यह किसी और के लिए सहायक हो।