मैक ओएस पर नोकोगिरी को स्थापित करना कामेच्छा के साथ विफल क्यों है?


159

मैं मैक ओएस 10.9.3 पर नोकोगिरी को स्थापित करने की कोशिश कर रहा हूं और जो कुछ भी मैं कोशिश करता हूं, वह निम्नलिखित त्रुटि के साथ अंत में विफल रहता है:

$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
libiconv 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-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out

वेब के चारों ओर पाई और libxml2 को स्थापित करने और स्रोतों से शराब बनाने और लिबीकॉन का उपयोग करके libxslt का पालन करने में बहुत मदद करने के बाद (जैसा कि " Nokogiri स्थापित करना " में वर्णित है ), त्रुटि समान रहती है।

Nokogiri के लिए इंस्टॉलेशन को चलाने का प्रयास करते समय, libxml2 और libxslt ठीक पाए जाते हैं, लेकिन libiconv नहीं।

इन चीजों की बेहतर जानकारी रखने वाला कोई भी व्यक्ति जानता है कि नोकोगिरी को कैसे स्थापित किया जाए?


आप उपयोग करने की कोशिश कर रहे सटीक कमांड नहीं दिखाते हैं, इसलिए हम उत्तर देने की कोशिश में अंधेरे में शूटिंग करेंगे। मैं हमेशा उपयोग करता हूं gem install nokogiri, लेकिन फिर मैं अपने मैक ओएस रूबी को प्रबंधित करने के लिए आरवीएम का उपयोग करता हूं। libxml और libxslt iconv से संबंधित नहीं हैं, इसलिए मैं Nokogiri-talk पर आपका प्रश्न पूछने की सलाह दूंगा जो उनका समर्थन मंच है। मुझे याद नहीं है कि नोकोगिरी को स्थापित करते समय कोई आईकव इश्यू है, और मेरे पास मशीनों का एक गुच्छा है।
टिन मैन

1
मैंने इस बीच में github पर एक टिकट खोला: github.com/tenderlove/nokogiri/issues/442 जिसमें थोड़ी अधिक जानकारी है।
पोलरब्लाउ

2
यहाँ पर OSX एल कैप्टन, एक ही समस्या हल करने के लिए एक लिंक भी है estebantorr.es/blog/2015/10/02/Nokogiri-in-El-Capitan
एसबीएस

" sudo gem install nokogiri"। sudoरत्नों को स्थापित करने या डिफ़ॉल्ट रूबी को संशोधित करने के लिए उपयोग न करें । इसके बजाय एक अलग रूबी का प्रबंधन करने के लिए rbenv या RVM का उपयोग करें। यह स्टैक ओवरफ्लो पर कई बार कवर किया जाता है।
टीन मैन

आप nokogiri स्थापित करने से पहले xz की स्थापना रद्द करने की कोशिश की है ?
लाइफस्टाइलू

जवाबों:


237

मेरी भी यही समस्या थी। दुर्भाग्य से " स्थापित कर रहा है Nokogiri " iconv मुद्दों को कवर नहीं करता। यहां बताया गया है कि मैंने इस मुद्दे को कैसे हल किया।

पहले होमब्रे को स्थापित करें , यह आपके जीवन को आसान बना देगा। यदि आप पहले से ही इसे स्थापित कर चुके हैं, तो इस तरह से अपडेट करके नवीनतम सूत्रों को पकड़ना सुनिश्चित करें:

brew update

नोट : OSX 10.9+ में आपको libiconv को स्थापित करने की अनुमति देने के लिए xCode कमांड टूल स्थापित करने की आवश्यकता हो सकती है।

xcode-select --install

उसके बाद libiconv का नया संस्करण स्थापित करें

brew install libiconv

फिर अपना रत्न स्थापित करें

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

5
एक बार जब मैंने "काढ़ा स्थापित लिबीकॉनव" और "काढ़ा लिबीकॉनव" किया तो मैं सफलतापूर्वक नोगोगिरी स्थापित करने में सक्षम था। मैं उम्मीद कर रहा हूँ कि इसका मतलब है कि मैं शराब पीने के द्वारा स्थापित libiconv के विशिष्ट संस्करण के लिए एक कठिन निर्भरता नहीं है।
स्टीवन चेनिन

87
जब मैं प्रयास brew install libiconvकरता हूं तो यह पता चलता है: त्रुटि: libiconv के लिए कोई भी उपलब्ध सूत्र Apple OS X के साथ libiconv वितरित नहीं करता है, आप इसे / usr / lib में पा सकते हैं। कुछ बिल्ड स्क्रिप्ट इसे सही तरीके से पता लगाने में विफल रहती हैं, कृपया समाधान के लिए मौजूदा फॉर्मूले की जाँच करें।
सेठ ब्रो

62
यदि आप Mavericks चला रहे हैं, तो आपको Xcode की कमांड लाइन टूल इंस्टॉल करने की आवश्यकता हो सकती है xcode-select --install:। इससे मेरे लिए समस्या ठीक हो गई।
माइकल स्टालकर

34
अगर आपको अभी भी brew install libiconvसही फॉर्मूला नहीं मिल रहा है, तो इसका इस्तेमाल करें:brew tap homebrew/dupes
jamesdlivesinatree

15
ओएस एक्स Yosemite(10.10) मुझे brewसामान करने की ज़रूरत नहीं थी ; बस xcode-select --installमेरे लिए यह समस्या तय हो गई।
bjfletcher

84

सिस्टम लाइब्रेरी का उपयोग करके देखें। OSX नए संस्करणों में libiconv के साथ आता है, लेकिन डिफ़ॉल्ट रूप से स्थापित स्क्रिप्ट में समस्या होती है

gem install nokogiri -- --use-system-libraries

संपादित करें: बंडलर का उपयोग कर रहे हैं, तो के रूप में उल्लेख ज्योफ आप कर सकते हैं:

bundle config build.nokogiri --use-system-libraries

5
यदि बंडलर का उपयोग कर रहे हैं - तो आप "बंडल कॉन्फ़िगर बिल्ड बिल्ड .nokogiri --use-system-l पुस्तकालयों" को चला सकते हैं
Geoff Evason

1
अंत में "बंडल कॉन्फ़िगरेशन बिल्ड .nokogiri --use-system-l पुस्तकालयों" ने काम किया। जब ऐसा होता है तो मुझे नफरत है
बजे पीटरसन

1
मेरे लिए Mac OS 10.10 Yosemite पर काम किया।
लॉयड डेवोल्फ

मणि स्थापित कमांड के बीच में मुझे अतिरिक्त "-" की आवश्यकता क्यों है?
रेम्ब्रांट Q. आइंस्टीन

3
मेरे लिए 10.10.3 पर विफल। Xcode 6.3 के साथ libxml2 version 2.6.21 or later is required!
रिवेरा

36

@ Cory के समाधान में सही उत्तर है, लेकिन Mavericks पर समाधान वास्तव में शीर्ष समाधान की तुलना में बहुत सरल है, इसलिए मैं केवल आवश्यक कदमों के साथ पुनर्स्थापना कर रहा हूं।

मावेरिक्स पर (OSX 10.9+):

Xcode कमांड लाइन उपकरण स्थापित करें:

xcode-select --install

फिर अपना रत्न स्थापित करें:

gem install nokogiri

4
योसेमाइट पर काम करता है। तो खुशी है कि मैं नीचे स्क्रॉल और बड़ी उम्र के जवाब का उपयोग नहीं किया।
युएई

विशाल समय, इस टिप के लिए धन्यवाद! Mavericks पर मेरे लिए एक आकर्षण का काम किया
आइसक्रीम

क्या आपने मेरे समाधान का उपयोग करने की कोशिश की? इसमें xcode intsalation की आवश्यकता नहीं है।
फ़िलिप किस

यह नोकोगिरी डॉक्स ( nokogiri.org/tutorials/installing_nokogiri.html#mac_os_x ) और एल कैप्टन पर काम करने वाला एकमात्र आधिकारिक समाधान है । स्वीकृत समाधान वहां काम नहीं किया।
जोहान्स

मेरे लिए एल कैपिटन पर काम किया गया, इसलिए बहुत बदनामी हुई। Nokogiri डॉक्स @ जोहान्स के लिंक के लिए धन्यवाद - वास्तव में उपयोगी है। सभी को ऐसे समाधानों से दूर रहना चाहिए जो "सिस्टम लाइब्रेरीज़ का उपयोग करें" कहते हैं - बुरी सलाह।
पोलसनबाई

19

मैं आखिरकार इस समस्या को हल करने में सक्षम था। उपरोक्त समाधानों में से किसी ने भी इसे पूरी तरह से मेरे लिए तय नहीं किया है।

gem install nokogiriOSX Lion 10.7.2 पर कोशिश करते समय मुझे यह त्रुटि मिली। सबसे पहले, यह त्रुटि कामेच्छा को गायब कहकर वास्तविक समस्या का सामना करती है, क्योंकि आपको वही त्रुटि मिलेगी भले ही nokogiri को libxslt या libxml2 नहीं मिल सकता है, जो मेरे मामले में, यह नहीं कर सका।

इसलिए मैंने होमब्रेन अनुभाग के तहत http://nokogiri.org/tutorials/installing_nokogiri.html पर निर्देशों का पालन किया (libxml2 के अधिक वर्तमान संस्करण के लिए खाते में थोड़ा संशोधित):

brew install libxml2
brew link libxml2

# install libxslt from source
wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
tar -zxvf libxslt-1.1.26.tar.gz
cd libxslt-1.1.26
./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8
make
sudo make install

इस बिंदु पर मैंने नोगोगिरी साइट पर निर्देशों का पालन किया और कोशिश की

gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

हालांकि, यह अभी भी विफल रहा है क्योंकि जब स्रोत से libxslt का निर्माण होता है, तो यह /includeफ़ोल्डर को एक फंकी जगह में स्थापित करता है। इसलिए आपको अलग से फोल्डर libऔर includeफोल्डर निर्दिष्ट करने की आवश्यकता है :

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt

यह अभी भी काम नहीं किया (एक ही libiconv त्रुटि), इसलिए मैंने सभी तीन आवश्यक पुस्तकालयों (libxslt, libxml2 और libiconv) को निर्दिष्ट करने की कोशिश की:

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8

अब मुझे एक अलग त्रुटि मिली! यह अभी भी एक त्रुटि थी लेकिन कम से कम यह अलग था। बनाने की प्रक्रिया विफल रही:

in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64

उह, क्या? बहुत सारी गुगली के बाद, मैं इस चमत्कारिक पोस्ट पर आया: http://www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required -आर्किटेक्चर/

स्पष्ट रूप से OSX लायन जहाजों को लिबास लाइब्रेरी ( libz.dylib, libz.1.dylib, libz.1.2.4.dylib) के कुछ खराब संस्करणों के साथ और उन्हें Xcode एसडीके के नवीनतम संस्करणों के साथ बदलने की आवश्यकता है। लेख यह बताता है कि मैं विशिष्ट निर्देशों के लिए उपरोक्त लिंक को पढ़ सकता हूं।

एक बार जब ये बदल दिए गए, तो मैं भाग गया

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8

फिर और सब ठीक था। मैं उम्मीद करता हूं कि इससे किसी की मदद होगी।


मुझे भी यही समस्या थी, लेकिन मैंने ऑप्ट / लोकल / लीब से निम्न फाइलों को हटाते हुए पाया: libz.dylib और libz.1.dylib और बाकी के निर्देशों का पालन करते हुए इस ट्रिक को पूरा किया।
Undistraction

1
मुझे लगता है कि / MacPorts इंस्टालेशन को ऑप्ट / लोकल दर्शाता है। यदि आप होमब्रे और मैकस्पोर्ट्स चला रहे हैं, तो आप कुछ फंकनेस (जैसा कि आपके मामले में देखा गया है) के साथ समाप्त होगा। सबसे अच्छा उपाय मैकपोर्ट की स्थापना रद्द करना है, और अपने पैकेज के लिए होमब्रे का उपयोग करना है।
Cory

मैंने नीचे Mavericks (OSX 10.9+) के लिए एक नया सरल समाधान जोड़ा।
मीका विंकेलस्पाट

17

बस मेरी आवाज को भीड़ में जोड़ते हुए, लेकिन mkmf.log ने x86_64 वास्तुकला के लिए प्रतीकों को खोजने में सक्षम नहीं होने के बारे में कुछ कहा। मैं इस समाधान में ठोकर खाई:

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries

मूल पूछने वाले के लिए कुछ भी हल नहीं हो सकता है, लेकिन यह किसी की मदद कर सकता है।

साइड नोट: रूबी अनुप्रयोगों का उपयोग करने के लिए nokogiri मेरा सर्वोच्च अवरोधक रहा है। हर बार जब कोई अलग संस्करण पर निर्भर करता है तो मुझे यह पता लगाना होता है कि इसे कैसे बनाया जाए। और मेरी समस्या हर बार अलग है।


1
अपनी नोकगिरी भावना से सहमत। हर एक। एक। समय।
jbnunn

इस रूप में मेरे लिए काम नहीं ARCHFLAGS="-arch x86_64" sudo gem install nokogiri -- --use-system-librariesकिया , लेकिन काम किया ...
bwoebi

यह मेरे लिए भी काम किया, बहुत आसान समाधान, मैं ARCHFLAGS का उपयोग नहीं किया, बस sudo मणि स्थापित nokogiri - --use-system-
l

8

gem install nokogiri -v '1.6.6.2' -- --use-system-libraries --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

यह मेरे लिए macos पर काम किया। यह संस्करण के साथ भी काम करता है1.6.6.4


--with-xml2-includeकैटालिना पर मेरे लिए विकल्प के बिना काम किया ... gem install nokogiri --version=1.6.6.2 -- --use-system-libraries
20

6

मैं उपयोग कर रहा हूँ .. OS X 10.9.4 Homebrew 0.9.4

लापता कामेच्छा को ठीक करने के लिए इस धागे से नोकगिरी को सफलतापूर्वक स्थापित करने के लिए मेरी गर्मी है।

Homebrew http://brew.sh/ स्थापित करें या नीचे कमांड का उपयोग करके नवीनतम अपडेट करें

brew update

Libxml2 libxslt स्थापित करें

brew install libxml2 libxslt

दोनों libxml2 libxslt को लिंक करें

brew link libxml2 libxslt

यदि आपको उपयोग करने के लिए चेतावनी मिलती है - प्रवर्तन, बस नीचे दिए गए आदेश का उपयोग करें

brew link --force libxml2 libxslt

आपको libiconv स्थापित करने में सक्षम करने के लिए xCode कमांड टूल स्थापित करें

xcode-select --install

लिबीकॉन को स्थापित करें

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install

अंतिम चरण, nokogiri स्थापित करें!

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

5

मैंने इसे हल करके YosemiteचलायाRuby 2.1.4

  1. सुनिश्चित करें कि आपके पास xCode 6.1 स्थापित है, फिर
  2. xcode-select --install, फिर
  3. AppStore में अपडेट पर क्लिक करें और कमांड-लाइन टूल्स के सबसे हाल के संस्करण को स्थापित करें (जो जाहिरा तौर पर xcode-select --installऐसा नहीं करता है - आह)
  4. फिर bundle installसामान्य रूप से काम किया।

मैंने भी किया था, brew install libiconvलेकिन मैं आश्वस्त नहीं हूं कि कदम की जरूरत थी।


मुझे विश्वास नहीं है कि brew install libiconvआवश्यक है - मैंने कभी भी उचित पैकेज खोजने की जहमत नहीं उठाई और यह मेरे लिए ठीक रहा। दी, यह मेरी मशीन पर हो सकता है जब मैंने 2.1.1 के पहले रूबी के साथ नोगोगिरी स्थापित किया था।
jmstone617

"AppStore में अपडेट पर क्लिक करें और कमांड-लाइन टूल्स के सबसे हाल के संस्करण को स्थापित करें (जो कि जाहिरा तौर पर xcode- चयन - स्थापना नहीं करता है - आह)" - कोई अपडेट उपलब्ध नहीं हैं। मैं Xcode से अपने कमांड-लाइन टूल को कैसे अपडेट करूं? वे वरीयताएँ फलक के "डाउनलोड" अनुभाग में दिखाई नहीं देते हैं।
चादोह

इसने मेरे लिए ऐप स्टोर पर जाए बिना काम किया। मैंने कमांड लाइन टूल और ओएस (योसेमाइट को) अपडेट किया, फिर भाग गया xcode-select --installऔर मैं नोकोगिरी को स्थापित करने में सक्षम था।
स्टील

मुझे करना था: xcode- चयन - स्थापना .. काढ़ा स्थापित libxml2 .. बंडल कॉन्फिगरेशन build.nokogiri --use-system-l पुस्तकालयों .. बंडल स्थापित
Zack Burt

4

मैंने कई चीजों की कोशिश की लेकिन मेरे लिए कुछ भी काम नहीं किया। फिर मुझे आखिरकार आइकॉन डॉक्यूमेंट मिला और इसने मेरा दिन बचा लिया!


बहुत बहुत धन्यवाद। इसने मेरा दिन भी बचाया।
पिसरुक

3

Mkmf फ़ाइल में देखते हुए, यह उदासीन है कि nokogiri (या मणि, मुझे नहीं पता) / op / स्थानीय / में निर्भरता खोजने का प्रयास करें। मेरे लिए यह उन्हें खोजने का सही रास्ता नहीं है।

सही जगह पर काम करने के लिए नोगोगिरी मजबूर करना (मैं होमब्रे का उपयोग करता हूं) ने मेरे लिए चाल चली:

$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

शायद नोकगिरी में कुछ ठीक करना है ...

HTH,


3

लिबेरिकॉन को होमब्रेव 0.9 से हटा दिया गया था। अब लिबिकॉनव को स्रोत से संकलित करने की सिफारिश की गई है, फिर जब आप नोकोगिरी रत्न स्थापित करते हैं तो इंस्टाल को देखें। Nokogiri स्थापित पृष्ठ पर Nokogiri स्थापित करें Homebrew 0.9 अनुभाग के तहत निर्देश देखें


आज के रूप में मैं $ brew चलाने के लिए libiconv स्थापित करने में सक्षम था और इसे डाउनलोड किया और libiconv-1.14.tar.gz स्थापित किया
विकास करें

2

मणि की निर्माण निर्देशिका में mkmf.log फ़ाइल में देखें (जैसे /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log)। यह एक बहुत अधिक जानकारी है। मेरे मामले में जब मैंने यह मारा तो यह था कि नोकोगिरी विशेष रूप से पुस्तकालय खोज पथ के लिए / ऑप्ट / स्थानीय / lib जोड़ता है और जीएनयू बैकगैमौन ने वहां एक असंगत लिबिकॉन स्थापित किया था।


2

मान लें कि आपने libxml2 को स्थापित किया है और MacPorts के साथ libxslt स्थापित किया है, तो हो सकता है कि आपको यह त्रुटि कॉल करने के लिए उपयोग किए गए रास्तों और लिंक पथों के क्रम के बेमेल होने के कारण हो सकती है, जिनके लिए has_func ('iconv_open', 'iconv.h') का उपयोग किया गया है

सरल (पैच) समाधान: libiconv को हटाएं। * in / usr / स्थानीय / lib


मैंने libxml2 और libxslt को MacPorts के साथ स्थापित किया है, लेकिन कोई libiconv नहीं हैं। * / usr / स्थानीय / lib में फ़ाइलें
Valerio Schiavoni

2
$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

ऊपर की तरह, यह होमब्रेव और मणि इंस्टॉल का उपयोग करने के लिए समाधान है (लागू परिवर्तन आपके संस्करण पर निर्भर करता है)

हालाँकि, यदि आप Gemfile और बंडल इंस्टाल का उपयोग करते हैं, तो आपको कोड स्थापित करने से पहले बंडल कॉन्फ़िगर को लागू करना चाहिए, यहाँ कोड

$ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

फिर से, परिवर्तन लागू करें आपके संस्करण पर निर्भर करता है

आशा है कि यह आपकी मदद करेगा।

साभार: https://gist.github.com/1344331


2

मुझे माउंटेन लायन पर भी ऐसी ही परेशानी थी। यह पता चला है कि मैंने पहले rvm पैकेज के माध्यम से libiconv स्थापित किया था और यह अब रूबी 1.9.3 / माउंटेन लायन / नोकोगिरी के लिए आवश्यक नहीं है।

Https://rvm.io/packages/ की सलाह के बाद , मैंने अपनी $ rvm_path / usr निर्देशिका को हटा दिया और रूबी 1.9.3 को फिर से बनाया। इसके बाद नोकगिरी स्थापित करना एक साधारण रत्न स्थापित था। काढ़ा / macports / मैनुअल स्रोत के साथ कोई गड़बड़ नहीं है!


2

आप Mavericks पर भी ऐसा कर सकते हैं:

मणि स्थापित nokogiri - --use-system-l पुस्तकालयों = true --with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacXX10.9.sdk / usr / शामिल / libxml2

बस सुनिश्चित करें कि आपके पास xcode स्थापित है


यही समाधान 10.7.5 के लिए भी काम करता है: मणि स्थापित नोकगिरी - --use-system-l पुस्तकालयों = true --with-xml2- शामिल = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX .platform / Developer /SDKs/MacOSX10.7.sdk/usr/include/libxml2
tolginho

2

मैं आज कुछ समय के लिए OS X 10.10 Yosemite पर नोकोगिरी के साथ लड़ रहा था

मेरा पर्यावरण किसी कारण से गड़बड़ा गया था।

which bundleऔर which gemमुझे /usr/bin/bundleऔर उसके /usr/bin/gemबदले दे रहे थे~/.rbenv/shims/gem

क्या यह मेरे लिए सही मदद की थी sudo rm -i /usr/bin/gem /usr/bin/bundle

उसके बाद मैं: 1. अपने प्रोजेक्ट निर्देशिका 2. निर्भर 3. (फिर) की स्थापना रद्द करने के लिए वापस स्विच निर्भर libs -installed: एक किया था brew install libxml2 libiconv libxslt 4. (rbenv के साथ) मेरी रूबी संस्करण ताजा 5. किया स्थापित gem install bundler 6. और bundle installकिसी भी होने के पहले चली समस्या।

Nokogiri उसके बाद ठीक था।

सन्दर्भ के लिए:

╰─% cat .bundle/config           
---
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_JOBS: 4

╰─% which ruby bundle gem
~/.rbenv/shims/ruby
~/.rbenv/shims/bundle
~/.rbenv/shims/gem

1
पदयात्रा में (जो कि हमेशा 20/20 होता है) मैं शायद अपने पैठ env- चर को पहले rbenv को प्रीपेंड करने के लिए समायोजित कर सकता था।
सैम फिगुएरो

1

आपको अपने होमब्रे को 0.9 में अपग्रेड करना होगा

तो इन चरणों का पालन करें

brew install libxml2 libxslt
brew link libxml2 libxslt
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

आपको फ़ोल्डर लाइब्रेरी संस्करण की दोहरी जांच करनी चाहिए।


लिंक और सुडोल चीजों को तोड़ देगा। वे केग-केवल कई कारणों से कर रहे हैं। काढ़ा बनाने के फ़ार्मुलों का उपयोग करें क्योंकि बनाए रखने के लिए आसान तरीका है। brew create http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz && brew install libiconv

1

घर का उपयोग करने वालों

यदि आप होमब्रे का उपयोग कर रहे हैं तो इस समस्या को ठीक करने के लिए सही समाधान:

xcode-select --install

संवाद बॉक्स से "गेट एक्सकोड" चुनें।

brew unlink libiconv
gem install nokogiri

Xcode- सेलेक्ट स्टेप आपके Xcode इंस्टॉलेशन और Xcode कमांड लाइन Utils की इंस्टॉलेशन को ठीक करता है। मैंने पाया कि O / S अपग्रेड के साथ किसी तरह की समस्या के कारण मुझे /usr/include/iconv.h नहीं मिला या बैकअप से पुनर्स्थापित नहीं हुआ। यदि आपके पास उस शीर्षलेख फ़ाइल और /usr/lib/libconv.dylib पर xcode-select नहीं चल रहा है तो आपको सबसे अधिक Xcode को एप्लिकेशन फ़ोल्डर से ट्रैश में खींचने और पुनर्स्थापित करने की आवश्यकता है और फिर Xcode पर कमांड लाइन टूल को मैन्युअल रूप से डाउनलोड करें। से https://developer.apple.com/downloads/index.action और स्थापना करें।

फिर आपको होमब्रे से लिबीकॉन को अनलिंक करना होगा। आपको इसकी आवश्यकता नहीं है। और क्लैंग वास्तव में /usr/local/include/iconv.h को /usr/include/iconv.h पर उठाएगा और #define iconv_open को libiconv_open में ले जाएगा, लेकिन फिर /usr/lib/libiconv.dylib से लिंक करेगा जिसमें libiconv_open नहीं है कामेच्छा को खोजने के लिए mkmf विफलताओं का कारण बनता है। आपको जो करने की आवश्यकता है वह iconv.h की लिंकिंग को हटा देगा ताकि नोकोगिरी इसे न मिले।

तो बस सामान्य रूप से nokogiri का निर्माण।

नए उपयोगकर्ताओं के लिए, आपको केवल xcode-select और nokogiri स्थापित करने के साथ xcode स्थापित करने की आवश्यकता है, लेकिन यदि आपको यह प्रश्न मिल गया है, तो संभवतः आपको एक botched स्थापना मिली है, न कि Mavericks की एक ताज़ा स्थापना।

यहाँ कुछ अन्य उत्तर निश्चित रूप से गलत हैं। उनमें से अधिकांश होमब्रे से बाहर कामेच्छा का उपयोग करने का प्रयास करते हैं जो पूरी तरह से अनावश्यक है। उत्तर जो brew link libiconvवास्तव में समस्या का कारण बन रहे हैं जहां क्लैंग भ्रमित हो जाता है और होमब्रेव हेडर फाइल को पढ़ने और सिस्टम लाइब्रेरी के खिलाफ लिंक करने की कोशिश करता है। जो उत्तर सुझाते --use-system-librariesहैं वे खराब हैं क्योंकि नोकोगिरी को इसके बंधे हुए libxml2 और libxslt पुस्तकालयों के खिलाफ जोड़ा जाना चाहिए क्योंकि उन पुस्तकालयों के अन्य संस्करण इसके साथ असंगत हैं। उत्तर जो आप स्रोतों से संकलित करना चाहते हैं, बस निराशाजनक रूप से अत्यधिक जटिल हैं।

टी एल; डॉ:

  • अपने Xcode इंस्टॉलेशन को अपग्रेड और / या मरम्मत करें
  • अपने homebrew libiconv को अनलिंक करें क्योंकि वह केवल समस्याओं का कारण बनता है
  • नोकगिरी का निर्माण सामान्य रूप से करें

आरवीएम USERS

पुराने आरवीएम इंस्टॉलेशन में आपके आरवीएम निर्देशिकाओं में एक लिबीकॉन छुपा हो सकता है जो आपके सिस्टम लाइब्रेरी के साथ विरोध कर रहे हैं। अधिक जानकारी के लिए https://stackoverflow.com/a/11809261/506908 देखें ।

MacPorts USERS

यदि आपके पास /opt/local/lib/libiconv.dylib है तो nokogiri निर्देशिकाओं की सूची में उस पथ को जोड़ता है जिसे वह खोजता है और यह MacPorts की स्थापना को उसी तरह से खोजेगा जो यह होमबॉयर लिबीकॉनव को चुनता है और सिस्टम लाइब्रेरी के साथ टकराव करता है। तुम कोशिश कर सकते हो:

sudo port uninstall libiconv

अगर निर्भरता के कारण यह विफल हो जाता है तो आप सीधे MacPorts संस्करण के खिलाफ लिंक करने का प्रयास कर सकते हैं (अप्रयुक्त):

gem install nokogiri -- --with-iconv-dir=/opt/local

gem install nokogiri -- --with-iconv-dir=/opt/localMacPorts libiconvस्थापित के साथ कन्फर्मिंग ठीक काम करता है
PartialOrder

1

यह एक मेरे लिए काम किया

sudo env ARCHFLAGS = "- आर्च x86_64" मणि स्थापित नोकगिरी: 1.6.6.2 - --use-system-l पुस्तकालयों --with-xml = / usr / स्थानीय / तहखाने / libxml2 / 2.9.3 / --with-iconv- dir = / usr / स्थानीय / सेलर / libiconv / 1.14


यह --use-system-l पुस्तकालयों और --with-iconv-dir का कॉम्बो था, जिसने इसे मेरे लिए किया था
Aaarrghgh

0

मैं इस सुबह, भाग गया ... Mavericks के उन्नयन के बाद। हमने कई काम किए। हालांकि अगर किसी को यह समस्या हो रही है तो यहां कुछ चीजें हैं।

मैंने 'xcode-select --install' चलाया, फिर कमांड लाइन टूल इंस्टॉल किया (आश्चर्य कि यह OS ugrade पर अपडेट नहीं हुआ)। मैं 'आरवीएम प्रत्यारोपण' चला गया (मैं इसे बाद में बनाऊंगा)।

हमने दो त्रुटि आउटपुट फ़ाइलों को एक साथ जोड़ दिया:

~ / .Vagrant.d / रत्न / रत्न / nokogiri-1.6.3.1 / ext / nokogiri / gem_make.out

~ / .Vagrant.d / रत्न / रत्न / nokogiri-1.6.3.1 / ext / nokogiri / tmp / x86_64-सेब के darwin12.5.0 / बंदरगाहों / libxml2 / 2.8.0 / configure.log

जो इंगित करता था कि सी संकलक एक आश्चर्यजनक सेटिंग का उपयोग कर रहा था।

मैंने 'env' चलाया

आउटपुट समाहित:

...
CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2
...
CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2
...

ये फ़ाइलें फ़ाइल सिस्टम पर मौजूद नहीं थीं ...

इन सभी परिवर्तनों के बाद एक नई टर्मिनल विंडो पर जाना (ताकि सब कुछ ताजा था)। योनि-बर्कशेल की स्थापना (जो बदले में नोगोगिरी स्थापित करती है) ने ठीक काम किया।

नोट: जब ताजा विंडो में 'env' चल रहा था तो CC या CXX के लिए सेटिंग नहीं थी ...

इस के प्रमुख भाग पर अनिश्चितता, या यदि आदेश मायने रखता है, लेकिन उन हिस्सों को फिर से बनाने की कोशिश की गई जो काम करने के लिए इसे प्राप्त करने में भूमिका निभा रहे थे।


क्या आप सुनिश्चित हैं कि आदेश gem install nokogiriसफल हुआ? "पहले से इंस्टॉल किया गया" संदेश या सफल इंस्टॉलेशन के साथ मुरझाया हुआ?
स्पंदुन

हाँ। मैंने rvm और ओह-माय-ज़ेड को फिर से इंस्टॉल किया है क्योंकि मैं अपने मैक पर चीजों का निर्माण करता हूं। मैं यह पता लगाने में सक्षम नहीं है कि एक rvm रत्न पर nokogiri कैसे स्थापित किया जाए। जब मैं 'आरवीएम उपयोग प्रणाली' पर वापस लौटता हूं, तो मैं 1.5.6 के ऊपर nokogiri 1.6.3.1 स्थापित कर सकता हूं जो OS X रूबी 2.0.0p451 पर आता है।
aaron blythe

अंत में मेरे लिए यह stackoverflow.com/questions/19643153// काढ़ा था , ऐप्पल- gcc42 काढ़ा अनइंस्टॉल करें Apple-gcc42
aaron blythe

0

प्रलेखन के अनुसार, OSX 10.9 और होमब्रेव 9.5+ के रूप में, आप शायद विकास के उपकरण को याद कर रहे हैं।

नोकगिरी स्थापना

समस्या निवारण

यदि आपको लिबिकॉनव का उल्लेख करने में समस्या आ रही है जो कुछ इस तरह दिखाई देती है:

Installing nokogiri (1.6.2.1) Building nokogiri using packaged libraries.

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for          help with installing dependencies.
-----
*** extconf.rb failed ***

तब शायद आपको सही डेवलपर टूल याद आ रहे हैं। यह एक बहुत ही आसान तरीका है:

brew unlink gcc-4.2      # you might not need this step
gem uninstall nokogiri
xcode-select --install
gem install nokogiri

यह OSX 10.9 w / xcode के क्लैंग कंपाइलर पर काम कर रहा है।


0

मुझे यह मुद्दा मिला जब मैंने अपने मैक ओएस को योसेमाइट में अपग्रेड किया। मैं इस मुद्दे को हल करने में सक्षम था:

xcode-select --install
brew uninstall libiconv
brew install libiconv
gem install nokogiri

0

मेरे पास एक समान मुद्दा था और स्वीकृत उत्तर मेरे लिए काम करता था। अब, हालाँकि मुझे एक नया त्रुटि संदेश दिखाई दे रहा है जहाँ gmkdirइस प्रश्न में एक कमांड गायब है:

रत्न स्थापित nokogiri -v '1.5.11' बनाने के कारण विफल: / usr / स्थानीय / बिन / gmkdir: ऐसी कोई फ़ाइल या निर्देशिका नहीं

मेरे लिए जो काम किया गया वह पहले थोड़ा साफ था:

brew uninstall libiconv
brew uninstall libxml2
brew uninstall libxslt

और फिर brew unlink libiconvऔर जो कुछ भी आपको अनलिंक करना है (साथ चेक करें brew doctor)। फिर, जादू दो पंक्तियों (लिंक किए गए उत्तर से कॉपी):

brew install coreutils
gem install nokogiri

0

किसी भी चीज़ को अनइंस्टॉल करने और इंस्टॉल करने से पहले सरल चरणों का पालन करें। जांचें कि क्या आपके पास CLT (कमांड लाइन टूल इंस्टॉल है):

brew config

CLT संस्करण यहाँ देखें यदि इसके इंस्टॉलेशन की कोई आवश्यकता नहीं है।

इसका मतलब यह है कि समस्या केवल अनुमति है कि आपने केवल बंडलर मणि को फिर से स्थापित किया है। gem uninstall bundler रत्न बंडलर को पुनर्स्थापित करने के साथ बंडल की स्थापना रद्द करें gem install bundler

यहां सबसे महत्वपूर्ण बिंदु वह अनुमति है जिसके तहत बंडलर रत्न स्थापित किया गया है इसे कभी भी सूडो नहीं किया जाना चाहिए।


-1

सबसे पहले यह सुनिश्चित करें कि आप nokogiri पर अधिष्ठापन गाइड का अनुसरण करते हैं: http://nokogiri.org/tutorials/installing_nokogiri.html

गाइड का पालन करने के बाद भी मेरे पास यह मुद्दा था। यह मैंने इसे कैसे हल किया:

सबसे पहले मैंने होमब्रे का उपयोग करके आइकनव को स्थापित किया: ब्रुव इंस्टॉल आइकनव

फिर मैंने माणिक की स्थापना रद्द की, सौभाग्य से यह आरवीएम के साथ बहुत आसान है:

rvm uninstall 1.9.2        

फिर मुझे निम्नलिखित विकल्पों के साथ माणिक को फिर से स्थापित करना पड़ा:

CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1

फिर मैं नए रूबी संस्करण के साथ एक रत्न तैयार करता हूं:

rvm use 1.9.2@coolproject

तो मैं अंत में इस तरह nokogiri स्थापित कर सकते हैं:

gem install nokogiri -v=1.4.4 -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

-1

मेरे मामले में, (स्कॉच के साथ) बिल्ड असंगत iconv लाइब्रेरी / ऑप्ट / लोकल / लीब के कारण विफल हो गया। डिफ़ॉल्ट रूप से, नोकोगिरी बिल्ड प्रक्रिया पहले / ऑप्ट / स्थानीय को देखती है। एक अलग संस्थापन निर्देशिका, / usr / स्थानीय का उपयोग करने के लिए इसे बाध्य करने के लिए, करें:

gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include

-1

यह ब्लॉग पोस्ट मैन्युअल रूप से libiconv स्थापित करने का प्रस्ताव करता है।

इसके बाद, नोकोगिरी को कई स्विच के साथ स्थापित किया जा सकता है, जिसमें यह बताया जा सकता है कि लिबीकॉन को कहां खोजें (ब्लॉग पोस्ट देखें)।

एक साइड नोट के रूप में: नोकोगिरी को स्थापित करने के बाद, मैं गोलम स्थापित करने में कामयाब रहा (जिनमें से स्थापना भी विफल रही क्योंकि यह आइकन आइकन नहीं खोज सका)। हालांकि मुझे अभी भी समस्याओं का सामना करना पड़ रहा है, क्योंकि जब मैं गोलम की शुरुआत करता हूं, तो पायथन दुर्घटनाग्रस्त हो जाता है।


-1
$ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247

$ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so*

$ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*

2.0.0-p247 में 2.0.0-p0 जवाहरात स्थापना में मौजूद MISSING /lib/iconv/iconv.so फ़ाइल नोट करें।

$ rbenv version
2.0.0-p247 (set by /home/XXX/tmp/.ruby-version)
$ rbenv which gem
/home/XXX/.rbenv/versions/2.0.0-p247/bin/gem
$ gem --version
1.8.25

$ rbenv which pry
/home/XXX/.rbenv/versions/2.0.0-p247/bin/pry
$ pry
[1] pry(main)> require 'iconv'
LoadError: cannot load such file -- iconv/iconv.so
from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require'

फ़ाइल पर प्रतिलिपि बनाएँ

$ pushd ~/.rbenv/versions/
$ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/

अब यह काम कर रहा है!

$ pry
[1] pry(main)> require 'iconv'
=> true

नोट: मैं rbenv के साथ काम कर रहा हूं, लेकिन यह समस्या रत्न की स्थापना के लिए विशिष्ट है और इसे स्ट्रीम को ठीक करना चाहिए!
डैरेन वेबर

इस उत्तर का सी लिबीकॉन लाइब्रेरी से कोई लेना-देना नहीं है जो नोगोगिरी का निर्माण निर्भर करता है। जवाब वास्तव में हटा दिया जाना चाहिए।
लैमोंट

-1

मुझे चलाने से पहले पहले gcc को इंस्टॉल करना था ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.