Рельсы ошибок — libxml-Ruby

Я боролся с этой ошибкой при установке libxml-ruby при настройке моего активного продавца git. Я много раз гуглил все компоненты ошибки, но я просто не совсем уверен, на что я смотрю. Есть куча "нет" - кто-нибудь знает, как интерпретировать то, что я могу упустить?

Building native extensions.  This could take a while...
ERROR:  Error installing libxml-ruby:
ERROR: Failed to build gem native extension.

/Users/tommynicholas/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb
checking for socket() in -lsocket... no
checking for gethostbyname() in -lnsl... no
checking for atan() in -lm... yes
checking for inflate() in -lz... yes
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for libxml/xmlversion.h... no
checking for libxml/xmlversion.h in     /opt/include/libxml2,/usr/local/include/libxml2,/usr/include/libxml2... no
*** 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=/Users/tommynicholas/.rvm/rubies/ruby-2.1.1/bin/ruby
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--with-zlib-dir
--without-zlib-dir
--with-zlib-include
--without-zlib-include=${zlib-dir}/include
--with-zlib-lib
--without-zlib-lib=${zlib-dir}/lib
--with-socketlib
--without-socketlib
--with-nsllib
--without-nsllib
--with-mlib
--without-mlib
--with-zlib
--without-zlib
--with-iconvlib
--without-iconvlib
--with-xml2-config
--without-xml2-config
--with-xml2lib
--without-xml2lib
extconf failure: need libxml2.

Install the library or try one of the following options to extconf.rb:

  --with-xml2-config=/path/to/xml2-config
  --with-xml2-dir=/path/to/libxml2
  --with-xml2-lib=/path/to/libxml2/lib
  --with-xml2-include=/path/to/libxml2/include


extconf failed, exit code 1

Gem files will remain installed in /Users/tommynicholas/.rvm/rubies/ruby-    2.1.1/lib/ruby/gems/2.1.0/gems/libxml-ruby-2.7.0 for inspection.
Results logged to /Users/tommynicholas/.rvm/rubies/ruby-    2.1.1/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-13/2.1.0/libxml-ruby-2.7.0/gem_make.out

person Tommy Nicholas    schedule 09.03.2014    source источник
comment
brew install libxml2 на макосах   -  person Cœur    schedule 08.10.2016


Ответы (1)


проверка libxml/xmlversion.h в /opt/include/libxml2,/usr/local/include/libxml2,/usr/include/libxml2... нет

Говорит мне, что вы, возможно, пропали без вести libxml2

Попробуйте установить его:

sudo apt-get install libxml2-dev

Что ж, по просьбе @TommyNicholas я попытаюсь объяснить, почему я увеличил libxml2 из всех остальных - это было немного интуитивно, но у меня были некоторые подсказки:

  1. Это была последняя строка перед тем, как установка объявила об ошибке, так что эта строка имеет большой потенциал быть критической ошибкой (установка продолжается после других сбоев...), она может быть не единственной, но она заслуживает внимания.
  2. Сообщение об ошибке показывает, что он искал libxml2 в /opt/include/, /usr/local/include/ и usr/include/ - и не нашел его, поэтому понятно, что он не установлен.
  3. Известно, что аналогичная ошибка возникает при установке Nokogiri, поэтому она не больно пробовать одно и то же решение.
  4. В любом случае, если ничего не помогает - RTFM - хотя мое предположение сработало, следующим шагом будет чтение сообщения об ошибке, которое намекает, что в логах может быть более полный отчет - mkmg.log:

Дополнительные сведения см. в файле mkmf.log.

person Uri Agassi    schedule 09.03.2014
comment
(Просто к вашему сведению) Я на Mac, поэтому я думаю, что это brew install libxml2 - похоже, это исправило. Обновлю, когда буду уверен, но вы, кажется, спаситель Ури. - person Tommy Nicholas; 09.03.2014
comment
Ага! Исправлено - можете ли вы сказать мне, как вы узнали, что это была проблема? Я видел эту строку, но как вы узнали, что именно она останавливает процесс? Я чувствую, что это дополнение к ответу действительно будет самым полезным для людей, которые будут читать это в будущем. - person Tommy Nicholas; 09.03.2014