Несовместимая версия библиотеки: nokogiri.bundle требуется версия 11.0.0 или новее, но libxml2.2.dylib
Я получаю эту ошибку при попытке запустить rspec в учебнике Hartl. Я googled ошибка, но это никогда не для конкретной версии, и исправления на самом деле не исправляют мою проблему.
/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'
Ответы
Ответ 1
Я предлагаю вам сначала удалить Nokogiri, используя:
sudo gem uninstall nokogiri
Затем установите Nokogiri с помощью rubygems:
gem install nokogiri
Если это не сработает, открыть вопрос в Nokogiri для поддержки libxml 2.9.0 и более поздних версий. Там есть ветвь libxml2-2.9.1, которая была запущена в процессе подготовки к следующей версии libxml2.
Затем попробуйте вытащить из этой ветки в свой Gemfile вот так:
gem "nokogiri", github: "sparklemotion/nokogiri", branch: "libxml2-2.9.1"
или установите более старую версию libxml2.
Если это все еще не работает, вы также можете попробовать здесь предложения: Что делать, если libxml2 является рывком.
Ответ 2
Не уверен, что это кому-то помогает, но я могу просто установить nokogiri с помощью системных libs
gem install nokogiri -- --use-system-libraries
Ответ 3
В сообщении об ошибке говорится:
nokogiri.bundle требуется версия 11.0.0 или новее, но libxml2.2.dylib обеспечивает версию 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.
Ответ 4
Если у вас установлен Homebrew, попробуйте это. Он решает проблему с зависанием "Документации по анализу для nokogiri-1.6.1". Это сработало для меня.
gem uninstall nokogiri libxml-ruby
Он задаст вам ряд вопросов, исходя из того, сколько из них вы хотите удалить, ответьте "да" или "[y]" всем.
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
Ответ 5
Повторная установка драгоценного камня не работала для меня и не тянула конкретную ветку.
Это не идеально, но я обнаружил, что откат до 1.5.9 решил проблему.
Ответ 6
Сначала проверьте версию 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
Ответ 7
Первый gem uninstall nokogiri
Второй install nokogiri
терминал третьего перезапуска
будь счастлив
Ответ 8
Попробуйте следующее в каталоге вашего проекта.
gem uninstall nokogiri
Если установлено более одной версии, появится сообщение с вопросом, какую версию удалить. используйте последнюю опцию, которая гласит "Все версии".
Затем, запустите bundle install
в вашем каталоге проекта. как только он закончит установку необходимых драгоценных камней, вам будет хорошо.
В моем случае я выбрал последний вариант "Все версии", так как это не повредит моему проекту, но, возможно, вам потребуются другие версии, основанные на других проектах.