【问题标题】:How to install Nokogiri on Mac OS Sierra 10.12如何在 Mac OS Sierra 10.12 上安装 Nokogiri
【发布时间】: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,但很有效,一旦我安装了它,我就不想再深入研究了。

标签: ruby nokogiri


【解决方案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
          

          这应该可以工作

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-02-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-03-06
            • 1970-01-01
            • 1970-01-01
            • 2018-06-02
            相关资源
            最近更新 更多