如何在 Mac OS Sierra 10.12 上安装 Nokogiri

Posted

技术标签:

【中文标题】如何在 Mac OS Sierra 10.12 上安装 Nokogiri【英文标题】:How to install Nokogiri on Mac OS Sierra 10.12 【发布时间】:2017-02-23 15:17:48 【问题描述】:

我在 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,但很有效,一旦我安装了它,我就不想再深入研究了。 【参考方案1】:

打开 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

【讨论】:

NDan 的回答比较简单 谢谢,真的很有帮助 新版本的 Mac OS 需要更新 Xcode,这会使命令行工具失效,因此需要重新安装。 Nokogiri 与它自己的 libxml2 版本捆绑在一起,这对许多系统都有帮助,但有时需要告诉 gem 去哪里找东西。一旦 Xcode 更新,gem 实际上会做正确的事情。 +1 太好了!如果您有 XCode 9.x,它也可以工作。这里不需要更新命令行工具;如果没有更新,只需打开 XCode,它就会处理它。 这对我有用,而 cmets 中提到的所谓更简单的答案却没有【参考方案2】:

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

xcode-select --install
gem install nokogiri

更新

对于 Mojave,我使用的是 gem install nokogiri -v '1.6.6.2' -- --use-system-libraries

【讨论】:

这对我有用。更新到 OS Sierra 后,我更新了 xcode,然后顺利安装了 nokogiri。 2017 年工作!谢谢? 您实际上需要打开 xcode 并安装更新或运行此处建议的代码。 谢谢,它需要在地狱中燃烧,但至少这可能会解决它。【参考方案3】:

尝试先用 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

【讨论】:

在 High Sierra 上也为我工作过。谢谢! 哇。你拯救了我的一天。谢谢。我在 High Sierra 10.13.3。【参考方案4】:

这可能是 gem install nokogiri -v '1.6.8.1' fails 的副本...最新接受的答案是:

brew unlink xz; bundle install; brew link xz

重新链接xz 可能没有必要......例如,如果您因为the_silver_searcher(直接链接到非符号链接库)而只有该依赖项。

【讨论】:

【参考方案5】:
gem update --system
xcode-select --install
brew unlink xz
gem install nokogiri -v '1.6.8.1'
brew link xz

如果上述步骤未能解决问题,对我来说同样有效的是运行 brew doctor 并清理所有未编译的头文件。

【讨论】:

这对我有用。由于某种原因,“捆绑更新”会失败。我必须按照这个答案中的建议安装 nokogiri。 几个月前我刚刚安装了 Nokogiri,但更改了 Ruby 版本并且安装 1.8.0 失败。我能够通过 unlink xz / gem isntall 模式安装它(没有 gem 更新或 xcode 选择)【参考方案6】:

类似于 yuяi 的回答和 Nokogiri 的帮助:

brew unlink xz
gem install nokogiri
brew link xz

http://www.nokogiri.org/tutorials/installing_nokogiri.html#mac_os_x

这适用于 1.7.0.1

【讨论】:

【参考方案7】:

中间人

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/

【讨论】:

【参考方案8】:

如果您之前使用带有bundle config build.nokogiri --use-system-libraries 的捆绑程序安装了 nokogiri,则此设置仍然存在。如果您同时解决了 Xcode 设置(建议作为 nokogiri 安装中的主要安装方法),那么您可能想尝试从捆绑程序 bundle config --delete build.nokogiri 中删除该 fra,然后再次尝试执行 bundle install

【讨论】:

【参考方案9】:

首先从应用商店安装 XCode

然后运行

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

然后运行

bundle install

这应该可以工作

【讨论】:

以上是关于如何在 Mac OS Sierra 10.12 上安装 Nokogiri的主要内容,如果未能解决你的问题,请参考以下文章

在 OS X 10.11 El Capitan、macOS 10.12 Sierra、macOS 10.13 High Sierra (< 10.13.3) 上安装 pecl 和 pear

mac 10.12 sierra 机械键盘+ratm可编程鼠标记录

从 OS Sierra 10.12 上的终端分段错误 11 错误重新签署 IPA

Mac OS10.12下安装MacPorts + Pallet ,让你更方便管理软件的安装和删除!!

如何在 Mac OS Sierra 上使用 Python3.5 绝对安装 virtualenvwrapper?

如何在 mac os x sierra 上安装 libX11-dev