如何在Mac OS Sierra 10.12上安装Nokogiri


74

我在Mac OS Sierra 10.12上安装Nokogiri(1.6.8.1)时遇到麻烦。

我尝试使用brew install libxml2 libxslt,然后使用命令行选项引用安装目录,但这没有帮助。


如果在安装Mac OS Sierra之后尝试安装Nokogiri> v1.6.8.1,我发现如果v1.7.1是该版本的Ruby所安装的第一个版本,则会出现问题。安装v1.6.8.1,然后使用gem update nokogiri中间版本进行更新,直到v1.7.1允许我安装它为止。这是一个hack,但是可以正常工作,一旦我安装了它,我就不想再挖了。
Tin Man

Answers:


181

打开Xcode,然后从菜单XCode->Preferences更新您的命令行工具(Xcode 8.0)。

然后做:

bundle config build.nokogiri --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2
bundle install

要不就:

gem install nokogiri -v 1.6.8.1 -- --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2

9
NDan的答案更简单
Sanjay

谢谢,真的很有帮助
pkrawat1

Mac OS的新版本需要更新Xcode,这会使命令行工具无效,因此需要重新安装它们。Nokogiri与它自己的libxml2版本捆绑在一起,该版本在许多系统上都有帮助,但有时需要告诉gem在哪里找到东西。一旦更新Xcode,gem实际上将做正确的事情。
Tin

+1好极了!如果您具有XCode 9.x,它也可以工作。在这里,您不需要更新命令行工具。如果没有更新,只需打开XCode,它将处理它。
gsscoder

2
这个工作对我来说,同时在评论中提到的所谓简单的答案没有
中华映管。Senkfuss18年

125

更简单的解决方案是执行:

xcode-select --install
gem install nokogiri

更新资料

对于莫哈韦沙漠,我正在使用 gem install nokogiri -v '1.6.6.2' -- --use-system-libraries


2
这对我有用。更新到OS Sierra后,我更新了xcode,然后顺利安装了nokogiri。
enlego '16

2
在2017年工作!谢谢
杰克·杰克

1
实际上,您实际上需要打开xcode并安装更新或运行此处建议的代码。
t-my

谢谢,它需要在地狱中燃烧,但是至少这可能会解决它。
Florian Heigl '18

47

尝试首先使用Homebrew安装libxml2。

brew install libxml2

然后,如果捆绑安装

bundle config build.nokogiri --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
bundle install

如果直接与gem一起安装

gem install nokogiri -- --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

1
在High Sierra上也为我工作。谢谢!
克林顿

4
哇。你救了我的日子。谢谢。我在High Sierra 10.13.3上。
Jagdeep Singh,

11

这可能是gem install nokogiri -v'1.6.8.1'的重复失败...最新的答案是:

brew unlink xz; bundle install; brew link xz

重新链接xz可能不是必需的……例如,如果您仅具有该依赖关系,原因是the_silver_searcher(它直接链接到未链接符号的库)。


11
gem update --system
xcode-select --install
brew unlink xz
gem install nokogiri -v '1.6.8.1'
brew link xz

如果上述步骤未能解决问题,那么对我来说也brew doctor有用的是运行并清理所有未压缩的头文件。


这对我有用。由于某些原因,“捆绑更新”将失败。我必须按照此答案的建议安装nokogiri。
Nick Kanellopoulos,

我几个月前才安装过Nokogiri,但是更改了Ruby版本,安装1.8.0失败。我能够通过取消链接xz / gem isntall模式(没有进行gem更新或xcode选择)进行安装
SciPhi


1

对于中间人

gem install nokogiri -v'1.8.2'---use-system-libraries = true --with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.13.sdk / usr / include / libxml2 /


0

如果您以前使用捆绑软件安装了nokogiri,则bundle config build.nokogiri --use-system-libraries此设置仍然存在。如果同时解决了Xcode设置(如nokogiri安装中建议的主要安装方法所示),则可能要尝试从捆绑程序中删除该fra,bundle config --delete build.nokogiri然后再尝试做一次bundle install

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.