为什么在Mac OS上安装Nokogiri失败,libiconv丢失?

我一直试图在Mac OS 10.9.3上安装Nokogiri,无论我尝试什么,安装失败最终以下错误消息:

$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib' This could take a while... Building nokogiri using packaged libraries. ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib Building nokogiri using packaged libraries. checking for iconv.h... yes checking for iconv_open() in iconv.h... no checking for iconv_open() in -liconv... no checking for libiconv_open() in iconv.h... no checking for libiconv_open() in -liconv... no ----- libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** 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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby --help --clean --use-system-libraries --enable-static --disable-static --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --enable-cross-build --disable-cross-build Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection. Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out 

在web上发现很多帮助后,包括使用brew构build和安装libxml2和libxslt以及从源代码构buildlibiconv(如“ 安装Nokogiri ”中所述),错误仍然相同。

当试图运行Nokogiri的安装,libxml2和libxslt似乎很好,但不是libiconv。

知道这些事情的人都知道如何安装Nokogiri?

    我遇到过同样的问题。 不幸的是,“ 安装Nokogiri ”不包括Iconv问题。 以下是我如何解决这个问题。

    首先安装自制软件 ,它会让你的生活更轻松。 如果您已经安装了它,请确保通过更新来获取最新的公式:

     brew update 

    注意 :在OSX 10.9+中,您可能需要安装xCode命令工具才能安装libiconv。

     xcode-select --install 

    然后安装更新版本的libiconv

     brew install libiconv 

    然后链接你的新iconv库:

     brew link libiconv 

    然后安装你的gem

     gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 

    尝试使用系统库。 OSX自带更新版本的libiconv,但默认的安装脚本似乎有问题

     gem install nokogiri -- --use-system-libraries 

    编辑:如果使用捆绑器,正如Geoff所说,你可以这样做:

     bundle config build.nokogiri --use-system-libraries 

    @ Cory的解决scheme包含正确的答案,但是小牛的解决scheme实际上比顶级解决scheme简单得多,所以我只需要重新发布必要的步骤。

    在小牛(OSX 10.9+)上:

    安装Xcode命令行工具:

     xcode-select --install 

    然后安装你的gem:

     gem install nokogiri 

    我终于能够解决这个问题。 上述解决scheme没有一个完全解决了我的问题。

    我试图在OSX Lion 10.7.2上gem install nokogiri时遇到了这个错误。 首先,这个错误通过说libiconv丢失来掩盖真正的问题,因为即使nokogiri找不到libxslt或libxml2,在我的情况下,它也不会得到相同的错误。

    所以我遵循了Homebrew部分的http://nokogiri.org/tutorials/installing_nokogiri.html上的说明(略作修改以说明libxml2的更新版本):

     brew install libxml2 brew link libxml2 # install libxslt from source wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz tar -zxvf libxslt-1.1.26.tar.gz cd libxslt-1.1.26 ./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8 make sudo make install 

    在这一点上,我跟随nokogiri网站的指示,并尝试

     gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 

    但是,这仍然失败,因为从源代码构buildlibxslt时,它将/include文件夹安装在一个时髦的地方。 所以你需要像这样分别指定libinclude文件夹:

     gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt 

    这仍然没有工作(相同的libiconv错误),所以我试图指定所有三个所需的库(libxslt,libxml2和libiconv):

     gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8 

    现在我得到了一个不同的错误! 这仍然是一个错误,但至less是不同的。 制作过程失败:

     in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64 

    呃,什么? 经过大量的谷歌search,我遇到了这个奇迹后: http : //www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required -build筑/

    显然,OSX Lion附带了libz库( libz.dylib, libz.1.dylib, libz.1.2.4.dylib )的一些不好的版本,而且它们需要用Xcode SDK中的最新版本replace。 这篇文章比我能解释得更好,所以请阅读上面的链接以获取具体的说明。

    一旦这些被replace,我跑了

     gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8 

    再一次都很好。 我希望这可以帮助别人。

    只是join我的声音,但mkmf.log说了一些关于不能findx86_64体系结构的符号。 我偶然发现了这个解决scheme:

     sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries 

    原来的提问者可能不会解决任何问题,但是这可能有助于某人。

    注意:nokogiri一直是我使用ruby应用程序的最大障碍。 每次有人依靠不同的版本,我必须弄清楚如何build立它。 而且我的问题每次都不一样

    我正在使用.. OS X 10.9.4自制软件0.9.4

    这是我从这个线程的总结,成功安装nokogiri,修复缺less的libiconv。

    安装自制软件 http://brew.sh/或更新到最新使用命令下面

     brew update 

    安装libxml2 libxslt

     brew install libxml2 libxslt 

    链接libxml2和libxslt

     brew link libxml2 libxslt 

    如果警告使用–force,只需使用下面的命令

     brew link --force libxml2 libxslt 

    安装xCode命令工具以使您能够安装libiconv

     xcode-select --install 

    安装libiconv

     wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xvfz libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1 make sudo make install 

    最后一步,安装nokogiri!

     gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib 

    我在Yosemite运行Ruby 2.1.4解决了这个问题

    1. 确保你已经安装了xCode 6.1
    2. 然后xcode-select --install
    3. 在AppStore中点击更新并安装最新版本的命令行工具(显然, xcode-select --install不会做 – 叹气)
    4. 然后bundle install正常工作。

    我也做了一个brew install libiconv但我不相信这一步是必要的。

    我尝试了很多东西,但没有为我工作。 然后,我终于find了iconv文件 ,并保存了我的一天!

    在mkmf文件中看,它认为nokogiri(或者gem,我不知道)试图在/ op / local /中find依赖关系。 对我而言,这不是search它们的正确途径。

    迫使nokogiri在正确的地方(我使用自制软件)findlibs为我做了诡计:

     $ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ 

    也许在nokogiri有什么可以解决的

    HTH,

    libiconv已经从Homebrew 0.9中移除了。现在build议从源代码编译libiconv,然后在安装nokogiri gem时参考安装。 请参阅Nokogiri安装页面上Homebrew 0.9部分的Nokogiri安装说明

    查看gem构build目录下的mkmf.log文件(例如/Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log)。 这有更多的信息。 在我遇到这种情况时,Nokogiri专门为库searchpath添加了/ opt / local / lib,而GNU步步高在那里安装了一个不兼容的libiconv。

    假设你用MacPorts安装了libxml2和libxslt,那么你可能仍然会得到这个错误,这是由于调用had_func('iconv_open','iconv.h')所使用的包含path和链接path的顺序不匹配。

    简单(补丁)解决scheme:删除/ usr / local / lib中的libiconv。*

     $ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ 

    与上面相同,这是自制软件和使用gem install的解决scheme(应用更改取决于您的版本)

    但是,如果您使用Gemfile和捆绑软件安装,则应在安装之前应用软件包configuration,这里是代码

     $ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 

    再次,应用更改取决于您的版本

    希望这会帮助你。

    信贷: https : //gist.github.com/1344331

    我在山狮上遇到了类似的麻烦。 事实certificate我之前已经通过rvm包安装了libiconv,而这对ruby 1.9.3 / Mountain Lion / nokogiri来说已经不再需要了。

    根据https://rvm.io/packages/的build议,我删除了我的$ rvm_path / usr目录并重build了ruby 1.9.3。 此后安装nokogiri是一个简单的gem安装。 没有搞泡沫/ macports /手动源安装!

    你也可以在小牛队这样做:

    gem install nokogiri – –use-system-libraries = true –with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.9.sdk / usr /有/ libxml2的

    只要确保你已经安装了xcode

    今天我在OS X 10.10优胜美地上与Nokogiri进行了一段时间的战斗

    我的环境出于某种原因被搞砸了。

    which bundlewhich gem给了我/usr/bin/bundle/usr/bin/gem而不是~/.rbenv/shims/gem

    什么帮助纠正我是sudo rm -i /usr/bin/gem /usr/bin/bundle

    之后,我:1.切换回我的项目目录2.卸载依赖3.(重新) – 安装依赖库:做一个brew install libxml2 libiconv libxslt 4.安装我的ruby版本新鲜(与rbenv)5.没有gem install bundler 6.和bundle install运行没有任何问题。

    Nokogiri很好。

    以供参考:

     ╰─% cat .bundle/config --- BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: '1' BUNDLE_JOBS: 4 ╰─% which ruby bundle gem ~/.rbenv/shims/ruby ~/.rbenv/shims/bundle ~/.rbenv/shims/gem 

    你需要升级你的自制软件到0.9

    然后按照这些步骤

     brew install libxml2 libxslt brew link libxml2 libxslt wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xvfz libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1 make sudo make install sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib 

    您应该仔细检查文件夹库版本。

    HOMEBREW用户

    如果您使用的是自制软件,请正确解决此问题:

     xcode-select --install 

    从对话框中select“获取Xcode”。

     brew unlink libiconv gem install nokogiri 

    xcode-select步骤将修复您的Xcode安装和Xcode Command Line Utils安装。 我发现我没有/usr/include/iconv.h由于O / S升级或从备份还原的某种问题。 如果在运行xcode-select之后没有该头文件和/usr/lib/libconv.dylib,那么您很可能需要将Xcode从Application文件夹拖到垃圾箱并重新安装,然后手动下载用于Xcode的命令行工具从https://developer.apple.com/downloads/index.action并安装。

    那么你需要解开libiconv与自制软件的链接。 你不需要这个。 而clang实际上会在/usr/local/include/iconv.h上find/usr/local/include/iconv.h,并将#define iconv_open转换为libiconv_open,然后再链接到/usr/lib/libiconv.dylib,它没有libiconv_open是什么导致mkmf失败findlibiconv。 你需要做的是去除iconv.h中的链接,以便nokogiri不会find它。

    然后通常build立nokogiri。

    对于新用户,所有你需要做的就是用xcode-select安装xcode并select安装nokogiri,但是如果你发现这个问题,那大概你已经有了一个拙劣的安装,而不是全新安装的小牛。

    这里的其他一些答案肯定是不正确的。 他们中的大多数都试图从自制软件中使用libiconv,这完全是不必要的。 brew link libiconv的答案实际上是导致铛变得困惑的问题,并尝试读取一个自制头文件和链接对系统库。 build议--use-system-libraries的答案很差,因为nokogiri需要链接到捆绑的libxml2和libxslt库,因为这些库的其他版本与它们不兼容。 希望您从源代码编译的答案只是无可救药地过于复杂。

    TL; DR:

    • 升级和/或修复您的Xcode安装
    • 取消链接你的自制libiconv,因为试图使用,只会导致问题
    • 通常build立nokogiri

    RVM用户

    旧的RVM安装可能会在您的rvm目录中隐藏与您的系统库冲突的libiconv。 有关更多信息,请参阅https://stackoverflow.com/a/11809261/506908

    MacPorts用户

    如果你有/opt/local/lib/libiconv.dylib,那么nokogiri将这个path添加到它所search的目录列表中,它会findMacPorts安装,类似于如何拾取自制libiconv并与系统库冲突。 你可以试试:

     sudo port uninstall libiconv 

    如果由于依赖关系而失败,那么你可以直接尝试链接到MacPorts版本(未经testing):

     gem install nokogiri -- --with-iconv-dir=/opt/local 

    这个为我工作

    sudo env ARCHFLAGS =“ – arch x86_64”gem install nokogiri:1.6.6.2 – –use-system-libraries –with-xml = / usr / local / Cellar / libxml2 / 2.9.3 / –with-iconv- DIR =的/ usr /本地/地窖/ libiconv的/ 1.14

    今天早上我遇到了这个……在升级到小牛之后。 我们做了很多事情。 但是,如果有人有这个问题,这里有一些事情要尝试。

    我运行了'xcode-select –install',然后得到了安装的命令行工具(惊讶这没有更新的操作系统ugrade)。 我运行了“rvm implode”(我将在以后重新构build它)。

    我们拼凑了两个错误输出文件:

    〜/ .vagrant.d /gem/gem/引入nokogiri-1.6.3.1 / EXT /引入nokogiri / gem_make.out

    〜/ .vagrant.d /gem/gem/引入nokogiri-1.6.3.1 / EXT /引入nokogiri / TMP / x86_64的-苹果darwin12.5.0 /端口/ libxml2的/ 2.8.0 / configure.log

    这似乎表明,C编译器使用了一个令人惊讶的设置。

    我跑了'env'

    包含的输出:

     ... CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2 ... CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2 ... 

    这些文件在文件系统上不存在…

    所有这些变化后,移动到一个新的terminal窗口(所以一切都是新鲜的)。 安装vagrant-berkshelf(反过来安装nokogiri)工作得很好。

    注意:在新窗口中运行'env'时,不再有CC或CXX的设置…

    不确定的关键部分,或者如果顺序重要,但试图重新创build似乎起到了这个工作的作用部分。

    根据文档,从OSX 10.9和Homebrew 9.5+开始,您可能会错过开发工具。

    Nokogiri安装

    故障排除

    如果您提到libiconv丢失的问题看起来像这样:

     Installing nokogiri (1.6.2.1) Building nokogiri using packaged libraries. Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb Building nokogiri using packaged libraries. checking for iconv.h... yes checking for iconv_open() in iconv.h... no checking for iconv_open() in -liconv... no checking for libiconv_open() in iconv.h... no checking for libiconv_open() in -liconv... no ----- libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** extconf.rb failed *** 

    那么你可能错过了正确的开发者工具。 这是一个非常简单的解决方法:

     brew unlink gcc-4.2 # you might not need this step gem uninstall nokogiri xcode-select --install gem install nokogiri 

    这是validation工作在OSX 10.9 w / xcode的叮当编译器。

    当我将我的Mac OS升级到Yosemite时,我遇到了这个问题。 我能够通过这样做来解决这个问题:

     xcode-select --install brew uninstall libiconv brew install libiconv gem install nokogiri 

    我有一个类似的问题,接受的答案曾经为我工作。 现在,无论如何,我已经看到一个新的错误消息,其中一个gmkdir命令丢失,如在这个问题:

    gem install nokogiri -v'1.5.11'因make make失败:/ usr / local / bin / gmkdir:没有这样的文件或目录

    对我有用的是先清理一下:

     brew uninstall libiconv brew uninstall libxml2 brew uninstall libxslt 

    然后brew unlink libiconv和任何你需要取消链接(与brew doctor检查)。 然后,魔术两行(从链接的答案复制):

     brew install coreutils gem install nokogiri 

    首先请确保您按照nokogiri上的安装指南进行操作: http ://nokogiri.org/tutorials/installing_nokogiri.html

    遵循指南后,我仍然有这个问题。 这是我解决它的方法:

    首先我使用自制软件安装iconv:brew install iconv

    然后我卸载了ruby,幸运的是这对于rvm来说非常简单:

     rvm uninstall 1.9.2 

    然后我不得不重新安装ruby与以下选项:

     CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1 

    然后我用新的ruby版本创build一个gemset:

     rvm use 1.9.2@coolproject 

    那么我终于可以这样安装nokogiri了:

     gem install nokogiri -v=1.4.4 -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 

    在我的情况下(和scotchi一样),由于/ opt / local / lib中的iconv库不兼容,构build失败。 默认情况下,Nokogiri构build过程首先查看/ opt / local。 要强制它使用不同的安装目录,例如/ usr / local,请执行:

     gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include 

    这篇博文build议手动安装libiconv。

    随后,nokogiri可以安装一些开关,告诉它在哪里findlibiconv(参见博客文章)。

    作为一个方面说明:安装nokogiri后,我设法安装gollum(安装也失败,因为它找不到iconv)。 现在我仍然面临问题,因为当我启动gollum时,Python崩溃了。

     $ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247 $ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so* 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so* $ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so* 

    注意在2.0.0-p0 gems安装中存在的2.0.0-p247中的MISSING /lib/iconv/iconv.so文件。

     $ rbenv version 2.0.0-p247 (set by /home/XXX/tmp/.ruby-version) $ rbenv which gem /home/XXX/.rbenv/versions/2.0.0-p247/bin/gem $ gem --version 1.8.25 $ rbenv which pry /home/XXX/.rbenv/versions/2.0.0-p247/bin/pry $ pry [1] pry(main)> require 'iconv' LoadError: cannot load such file -- iconv/iconv.so from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 

    复制文件

     $ pushd ~/.rbenv/versions/ $ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/ 

    现在它工作!

     $ pry [1] pry(main)> require 'iconv' => true 

    在运行./configure --prefix=/usr/local/Cellar/libiconv/1.13.1之前,我必须先安装gcc

    我遵循nokogiri安装页面的指示,也安装了xcode工具。 但是对我来说还是不行。

    然后我看到brew install libxml2 libxslt命令输出以下(其他不同的东西):

     To allow the nokogiri gem to link against this libxslt run: gem install nokogiri -- --with-xslt-dir=/usr/local/opt/libxslt 

    所以,我运行这个和nokogiri安装成功。

    这适用于我:

     gem install nokogiri -- --use-system-libraries 

    如果你使用Bundler,告诉它使用选项:

     bundle config build.nokogiri --use-system-libraries bundle install 

    REF