2013-04-05 5 views
6

के एक नए संस्करण का उपयोग करने के लिए नोकोगिरी प्राप्त करना मैं rspec और capybara के साथ उपयोग करने के लिए अपने कंप्यूटर (माउंटेन शेर) पर नोकोगिरी स्थापित करने की कोशिश कर रहा हूं, लेकिन मेरे जीवन के लिए, मैं इसे चलाने के लिए नहीं मिल सकता अच्छी तरह।libxml2

जो मैं कह सकता हूं, यह मुद्दा libxml2 के गलत संस्करण का उपयोग करके नोकोगिरी के साथ है। मैंने अब तक होमब्रे का उपयोग करके libxml2 को अनइंस्टॉल करने और पुनर्स्थापित करने का प्रयास किया है (सुनिश्चित करें कि यह सबसे हालिया है), अनइंस्टॉल करना और बंडल का उपयोग करके नोकोगिरी को पुनर्स्थापित करना, और libxml2 फ़ाइलों के सटीक पथ को निर्दिष्ट करना जो होमोक्रू को नोकोगिरी मणि इंस्टॉल करते समय स्थापित किया गया है। मेरा सबसे हाल ही स्थापित निर्देश इस

sudo 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 

जहां उन सभी स्थानों को सही ढंग से जिन स्थानों पर उपकरण स्थापित कर रहे हैं के अनुरूप है की तरह लग रहा था। हालांकि, bundle exec rspec spec/requests/static_pages.rb चल पर, मैं अभी भी इस आउटपुट प्राप्त:

/Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri.rb:28:in `require': dlopen(/Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /usr/local/lib/libxml2.2.dylib (LoadError) 
Referenced from: /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle 
Reason: Incompatible library version: nokogiri.bundle requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0 - /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri.rb:28:in `<top (required)>' 
    from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require' 
    from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `block (2 levels) in require' 
    from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `each' 
    from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `block in require' 
    from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `each' 
    from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `require' 
    from /Users/alex/.rvm/gems/[email protected]/gems/bundler-1.3.4/lib/bundler.rb:132:in `require' 
    from /Users/alex/Sites/harbingernews/config/application.rb:7:in `<top (required)>' 
    from /Users/alex/Sites/harbingernews/config/environment.rb:2:in `require' 
    from /Users/alex/Sites/harbingernews/config/environment.rb:2:in `<top (required)>' 
    from /Users/alex/Sites/harbingernews/spec/spec_helper.rb:3:in `require' 
    from /Users/alex/Sites/harbingernews/spec/spec_helper.rb:3:in `<top (required)>' 
    from /Users/alex/Sites/harbingernews/spec/requests/static_pages_spec.rb:1:in `require' 
    from /Users/alex/Sites/harbingernews/spec/requests/static_pages_spec.rb:1:in `<top (required)>' 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load' 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `block in load_spec_files' 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `map' 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load_spec_files' 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:22:in `run' 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run' 
    from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun' 

मैं सभी कदम है कि मैं ऑनलाइन पाया है की कोशिश की है (सबसे संदर्भ निर्माण और libxml2 के विभिन्न संस्करणों लोड हो रहा है, this one की तरह है, लेकिन कोई पड़ा है सफलता अभी तक। मेरे Gemfile और Gemfile.lock here पाया जा सकता है। किसी को भी मुझे बिल्कुल भी मदद कर सकते हैं, मैं वास्तव में सराहना करते हैं यह। मैं नहीं इस समस्या से ऑनलाइन किसी भी अन्य मामलों को खोजने के लिए सक्षम किया गया होगा।

+0

'brew --prefix libxml2' का आउटपुट क्या है? नोकोगिरी/एक्सटी/नोकोगिरी/में सुगंध के लिए extconf.rb फ़ाइल देखें जहां नोकोगिरी libs और हेडर फाइलों की तलाश में है। –

+0

यहाँ उत्पादन है: /usr/स्थानीय/opt/libxml2 मैं फ़ाइल आप की बात कर रहे थे पाया और मुझे लगता है कि मैं समझता हूँ कि यह क्या हर तरह, हालांकि मैं वास्तव में अनिश्चित हूँ। क्या मुझे होमब्रू से पथों को जांचने के लिए स्थानों की सूची में जोड़ना चाहिए? यदि मैं ऐसा करता हूं, तो libxml2 के पुराने, गलत संस्करण का उपयोग करना बंद कर देगा? – alexlafroscia

+1

क्या आपने पढ़ा है _ [क्या करना है यदि libxml2 एक झटका है] (https://github.com/sparklemotion/nokogiri/wiki/What-to-do-if-libxml2-is-being-a-jerk) _ ? – Phrogz

उत्तर

4

बस इसे स्पष्ट करने के लिए, फोग्ज़ की टिप्पणी ने मुझे थोड़ा सा मदद की। मैंने निर्देशों का पालन किया कि वह What to do if libxml2 is being a jerk? पृष्ठ को नोकोगिरी के गिथब पेज पर मिला। मैंने आपको समाप्त कर दिया पी होमब्री के बजाए मैकपोर्ट्स का उपयोग करके, और मुझे यकीन नहीं है कि क्या इससे अंतर आया है (मैंने पहले से ही उन चरणों में से कई कोशिश की थी) लेकिन एक तरफ या दूसरा, ऐसा लगता है कि यह अभी ठीक काम कर रहा है।

+3

के रूप में चिह्नित नहीं कर सकता, ठीक है, मैं होमब्री समाधान देखना चाहता हूं। – fatuhoku

9

मैवरिक्स में, brew के साथ पुस्तकालयों की स्थापना और मणि स्थापित करने से पहले 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"

  • 1

    OSX उन्नयन जब मैं समस्या थी के बाद यह सवाल Google पर:

    require': dlopen(/Users/tomi/.rvm/gems/[email protected]/extensions/x86_64-darwin-12/2.1.0-static/nokogiri-1.5.10/nokogiri/nokogiri.bundle, 9): Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib (LoadError)

    और यह मुझे

    brew uninstall libxml2 libxslt libiconv brew install libxml2 libxslt libiconv

    के लिए काम किया
    +0

    ओएस एक्स मैवरिक्स पर 'इंस्टॉल' कमांड चलाते समय आउटपुट: '' त्रुटि: libiconv ऐप्पल के लिए कोई उपलब्ध फॉर्मूला ओएस एक्स के साथ libiconv वितरित करता है, तो आप इसे/usr/lib में पा सकते हैं। कुछ निर्माण स्क्रिप्ट इसे सही ढंग से पता लगाने के लिए, कृपया solutions.''' – Webdevotion

    8

    इससे मुझे एल अपडेट करने में मदद मिलती है ibxml और nokogiri सही ढंग से स्थापित करें ...

    1. मणि स्थापना रद्द करें nokogiri libxml-माणिक
    2. काढ़ा अद्यतन
    3. काढ़ा स्थापना रद्द करें libxml2
    4. काढ़ा स्थापित libxml2 --with-xml2-config
    5. काढ़ा लिंक --force libxml2
    6. काढ़ा स्थापित libxslt
    7. ब्रू लिंक --force libxslt
    8. बंडल कॉन्फ़िगरेशन build.nokogiri - --with-xml2- http://www.kormoc.com/2013/12/22/nokogiri-libxml2/

      : dir =/usr --with-xslt-dir =/opt/स्थानीय --with-iconv-dir =/opt/स्थानीय

    9. बंडल

    यहाँ स्थापित स्रोत है उम्मीद है कि यह किसी की मदद करता है ...

    +0

    यह मेरे लिए काम किया के लिए मौजूदा सूत्रों :) धन्यवाद –

    +0

    दुर्भाग्य पर ओएस एक्स 10.10.5 मेरे लिए काम नहीं किया :(फिर भी libxml2 के बारे में शिकायत की जाँच असफल। –

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