2013-09-16 2 views
18

Я получаю эту ошибку при попытке запустить rspec в учебнике Hartl. Я googled ошибка, но это никогда не для конкретной версии, и исправления на самом деле не исправить мою проблему.Несовместимая версия библиотеки: nokogiri.bundle требуется версия 11.0.0 или новее, но libxml2.2.dylib

/Users/Jimbo/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/lib/nokogiri.rb:28:in `require': dlopen(/Users/Jimbo/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-   1.6.0/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /Users/Jimbo/.bundler/tmp/22862/gems/nokogiri-1.6.0/ports/i686-apple- darwin11/libxml2/2.8.0/lib/libxml2.2.dylib (LoadError) 
Referenced from: /Users/Jimbo/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri- 1.6.0/lib/nokogiri/nokogiri.bundle 
Reason: Incompatible library version: nokogiri.bundle requires version 11.0.0 or later, but libxml2.2.dylib provides version 10.0.0 - /Users/Jimbo/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.bundle 
from /Users/Jimbo/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/lib/nokogiri.rb:28:in `<top (required)>' 
from /Users/Jimbo/.rvm/gems/ruby-2.0.0-p247/gems/capybara-2.1.0/lib/capybara.rb:2:in `require' 
from /Users/Jimbo/.rvm/gems/ruby-2.0.0-p247/gems/capybara-2.1.0/lib/capybara.rb:2:in `<top (required)>' 
from /Users/Jimbo/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require' 
from /Users/Jimbo/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require' 
from /Users/Jimbo/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each' 
from /Users/Jimbo/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require' 
from /Users/Jimbo/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each' 
from /Users/Jimbo/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require' 
from /Users/Jimbo/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler.rb:132:in `require' 
+0

Я получаю такую ​​же ошибку: LoadError: невозможно загрузить такой файл - nokogiri/2.3/nokogiri – Jaswinder

ответ

34

Я предлагаю вам сначала удалить Nokogiri с помощью:

sudo gem uninstall nokogiri 

Затем установите Nokogiri с помощью RubyGems:

gem install nokogiri 

Если это не работает, есть open issue на Nokogiri для поддержки LibXML 2.9.0 и выше. Там есть libxml2-2.9.1 branch, который был запущен в рамках подготовки к следующей версии libxml2.

Затем попробуйте вытягивать из этой ветви в вашем Gemfile так:

gem "nokogiri", github: "sparklemotion/nokogiri", branch: "libxml2-2.9.1" 

или установить более старую версию libxml2.

Если это все еще не работает, вы также можете попробовать предложения здесь: What to do if libxml2 is being a jerk.

+0

Эта ветка больше не существует –

3

Ваше сообщение об ошибке говорит:

nokogiri.bundle requires version 11.0.0 or later, but libxml2.2.dylib provides version 10.0.0

Это заставляет меня думать, что ваш драгоценный камень на самом деле требует версии libxml, то есть новее, чем ваша версия системы. Как вы установили libxml2? Если вы доморощенного установки, вы можете попробовать модернизировать его с

brew update 
brew upgrade 

Я был в состоянии установить Nokogiri 1.6.0 с Ruby, 2.0.0p247 на OS X 10.9, а затем требуют в IRB. Я дважды проверил с Homebrew, и это на самом деле keg-only. Однако, Nokogiri, кажется, устанавливает свою собственную версию в gems/nokogiri-1.6.0/ports. На моей машине она находится под x86_64-apple-darwin13.0.0.

+0

Спасибо, @Shepmaster. Ответ Райана сработал для меня (деинсталляция и переустановка нокогири). –

0

Переустановка драгоценного камня не работает для меня и не тянет конкретную ветку.

Это не идеальный вариант, но я обнаружил, что откат до 1.5.9 решил проблему.

3

Если у вас установлен Homebrew, попробуйте это. Он решает проблему с зависанием «Документации по анализу для nokogiri-1.6.1». Это сработало для меня.

gem uninstall nokogiri libxml-ruby 

Это задаст ряд вопросов, основываясь на том, сколько из этого вы хотите удалить, ответ «да» или «[у]» для всех.

brew update 
brew uninstall libxml2 
brew install libxml2 --with-xml2-config 
brew link --force libxml2 
brew install libxslt 
brew link --force libxslt 

gem install nokogiri --no-rdoc --no-ri 

Затем в файле проекта:

bundle install 
0

Во-первых, проверьте версию Libxml:

otool -L /usr/lib/libxml2.2.dylib 

Он может вернуть

/usr/local/opt/libxml2/lib/libxml2.2.dylib (compatibility version 11.0.0, current version 11.0.0) 

или

/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0) 

Тогда вы можете попробовать переустановить LibXML обновить его:

brew uninstall libxml2 libxslt 
brew install libxml2 libxslt 

После этого, попробуйте пересобрать пакет:

make clean 
./configure 
make 
sudo make install 
2

Не уверен, если это поможет кто-нибудь, но я мог бы просто get nokogiri устанавливается с использованием системных библиотек

gem install nokogiri -- --use-system-libraries 
+0

ничего не помогло, эта вещь заставила его работать, как очарование! благодаря! –

Смежные вопросы