Libxml2在Mac OS X 10.10中缺失。

31
Running 'compile' for libxslt 1.1.28... OK
Running 'install' for libxslt 1.1.28... OK
Activating libxslt 1.1.28 (from /Users/Kartik/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.4.1/ports/x86_64-apple-darwin14.0.0/libxslt/1.1.28)...
checking for main() in -llzma... yes
checking for xmlParseDoc() in libxml/parser.h... no
checking for xmlParseDoc() in -lxml2... no
checking for xmlParseDoc() in -llibxml2... no

libxml2缺失。请查找mkmf.log以了解其失败的原因。

*** 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.

那么 mkmf.log 说了什么?软件安装问题应该咨询 http://superuser.com。 - Raptor
同样适用于OS X 10.11。 - Mohamed ElNakeep
8个回答

85

我花了很长时间试验,以下方法对我起作用:

1)使用Homebrew安装libxml2

brew install libxml2

2) 通过以下方式安装 gem

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri:1.6.4.1 -- --use-system-libraries --with-xml=/usr/local/Cellar/libxml2/

2
这对我解决了问题: sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri - Mani
4
我花了一个小时和美妙的Nokogiri玩得很开心。但解决方案是如此简单!一行255个字符的超级具体命令。完全有道理。 - HotFudgeSunday
11
尽管位于 /usr/local/Cellar/... 的 libxml 版本为 2.9.2,但我收到了“需要 libxml2 版本 2.6.21 或更高版本”的错误提示。这很奇怪。 - user152468
这很完美。如果您使用rvm或rbenv,则可以省略sudo。 - Ten Bitcomb
@user152468,我也遇到了“需要libxml2版本2.6.21或更高版本”的问题。Brew安装的是libxml2-2.9.2,所以不确定是否与那个2有关? - codecowboy
显示剩余2条评论

15

对于仍然收到“需要libxml2版本2.6.21或更高版本!”消息的任何人,按照hlv步骤2中的说明删除--use-system-libraries,对我有用。

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri:1.6.4.1 -- --with-xml=/usr/local/Cellar/libxml2/2.9.2/

3

我最终得出了这个版本无关的代码行:

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri  -n /usr/local/bin -- --with-xml=/usr/local/Cellar/libxml2/

3
这对我有用(假设已安装Xcode):
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.‌platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries

受到https://stackoverflow.com/a/28767045/1884907的启发(感谢lx00st)。

应该是 "nokogiri" 而不是 "nkogiri"。谢谢。 - maurymmarques
或者使用 /usr/include/libxml2 而不是长路径 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 - Franklin Yu
截至今天,这个命令可以正常工作: gem install libxml-ruby -v '3.0.0' -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries - paneer_tikka

3
(适用于MacOS 10.12.x)也许你想要brew install libxml2并尝试先链接到/usr/local/brew link --force libxml2,然后尝试gem install nokogiri -- --use-system-libraries

1
使用端口:
gem install nokogiri -- --use-system-libraries --with-xml=/opt/local/lib/libxml2.a

0
我的解决方案,使用端口: < p > < code > sudo ARCHFLAGS ='-arch x86_64' gem install nokogiri -- --use-system-libraries 默认情况下,它将编译为x86_64和i386,应禁用i386的架构,因为端口中的依赖库默认仅提供x86_64版本。

0

这有点像其他答案的翻版,但对我很有效:

 gem install nokogiri -v '1.6.6.2' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.16 --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2  --use-system-libraries

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接