Пользователь Mac и получение ВНИМАНИЕ: Nokogiri был построен против LibXML версии 2.7.8, но динамически загружал 2.7.3 - PullRequest
82 голосов
/ 23 июля 2011

Я провел все виды исследований и перепробовал много разных вещей. Я знаю, что на этот вопрос отвечали много раз, но ни одно из предложенных решений не работает для меня.

После обновления до Lion у меня возникают ошибки сегментации в Ruby. Я уверен, что это Нокогири. Поэтому я установил libxml2 через Homebrew. Я побежал brew link libxml2. Затем я переустановил Nokogiri, используя эту версию библиотеки.

Для доказательства:

$ nokogiri -v
# Nokogiri (1.5.0)
---
warnings: []
nokogiri: 1.5.0
ruby:
  version: 1.9.2
  platform: x86_64-darwin11.0.0
  description: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.0.0]
  engine: ruby
libxml:
  binding: extension
  compiled: 2.7.8
  loaded: 2.7.8

Я уже включил Nokogiri в начало моего gemfile, и я также потребовал его в моем файле среды. Я понятия не имею, почему я все еще получаю это предупреждение.

Есть предложения или идеи, чтобы убедиться, что загружается правильная версия libxml2?

Ответы [ 15 ]

1 голос
/ 16 января 2013
gem uninstall nokogiri
bundle  #install nokogiri again

Если это не с «libxml2 отсутствует».и вы видите gems / nokogiri-1.5.0 / ext / nokogiri / mkmf.log, пытающийся использовать "/usr/bin/gcc-4.2 ...", тогда вы пропускаете /usr/bin/gcc-4.2

Решение:

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

До:

$ ll /usr/bin/gcc*
lrwxr-xr-x  1 root  wheel  12 Jan 15 00:16 /usr/bin/gcc -> llvm-gcc-4.2

После:

$ ll /usr/bin/gcc*
lrwxr-xr-x  1 root  wheel  12 Jan 15 00:16 /usr/bin/gcc -> llvm-gcc-4.2
lrwxr-xr-x  1 root  wheel  12 Jan 15 21:07 /usr/bin/gcc-4.2 -> /usr/bin/gcc

Если вам действительно не хватает libxml2 libxslt, тогда

brew update
brew install libxml2 libxslt
brew link libxml2 libxslt
bundle config build.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/
bundle

К вашему сведению: я управляю Горным Львом с варевом и упаковщиком.

0 голосов
/ 05 октября 2018

Если у вас есть это сообщение, и ваш nokogiri устарел по сравнению с версией, доступной из источника gem, просто запустите bundle update nokogiri, чтобы получить новый код и перекомпилировать. Ваша ошибка должна уйти.

0 голосов
/ 30 мая 2014

ОС: Maverick 10.9.3

Рубин 1.9.3

ВНИМАНИЕ: Nokogiri был построен против LibXML версии 2.9.1, но динамически загружал 2.9.0

Мое решение:

gem uninstall nokogiri
brew update
cd /usr/local
brew versions libxml2
git checkout 5dd45d7 /usr/local/Library/Formula/libxml2.rb # libxml version 2.9.0
brew install libxml2
bundle install or gem install nokogiri -v "1.5.11"

Надеюсь, что эта помощь

0 голосов
/ 09 мая 2014

Просто столкнулся с этим сам (OS X Lion 10.7.5). Мое точное сообщение было таким: Nokogiri был построен против LibXML версии 2.8.0, но динамически загружал 2.7.3

Я попробовал несколько предложений, упомянутых здесь, но ни одно из них не сработало, но это сработало:

gem install nokogiri -- --with-xml2-dir=/usr --with-xslt-dir=/opt/local --with-iconv-dir=/opt/local

Объяснение таково: «Это происходит потому, что по умолчанию используется система Lion libxml2 (загружается при начальной загрузке), независимо от того, против какого libxml2 был построен Nokogiri».

Кредиты для: https://coderwall.com/p/o5ewia

0 голосов
/ 20 сентября 2013

У меня фактически было установлено 2 версии libxml, одна из исходников, другая из RPM.

Вот мое полное решение

Я удалил источник (из исходного каталога)

sudo make uninstall

Удалить связки

rm -rf ~/.bundle ~/.bundler

Обновлен LD (возможно, придется делать это как root, а не как sudo)

sudo ldconfig

Затем переустановил комплект

bundle install
...