在OSX 10.9 Maverick上安装Nokogiri时出错?


109

我将OSX(Lion)升级到Mavericks,但无法为我的项目安装Nokogiri。

我已经安装了XCode 5.0.1,命令行工具(使用 xcode-select --install),并且已经从Homebrew安装了libxml2,但仍然遇到问题。

错误是:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** 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
    --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=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib
    --without-xml2-lib=${xml2-dir}/lib
    --with-xslt-dir
    --without-xslt-dir
    --with-xslt-include
    --without-xslt-include=${xslt-dir}/include
    --with-xslt-lib
    --without-xslt-lib=${xslt-dir}/lib
    --with-libxslt-config
    --without-libxslt-config
    --with-pkg-config
    --without-pkg-config
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:116:in `<main>'


Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.

我从Homebrew安装了libxml2,libxslt和libiconv,并设置了参数来安装Nokogiri,但也无法正常工作。

我找不到环境中的问题,您能帮我吗?



2
尝试打开xcode并接受EULA /许可证。
漫游者

Answers:


245

您也可以使用完整的XCode安装在Mac OS X 10.9 Mavericks上安装Nokogiri :

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

更新资料

对于使用优胜美地的用户,以下命令将起作用:

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

或者,它实际上可能在您的 MacOSX10.11.sdk文件夹中(我的发布日期为2015年9月18日),因此,即使您尚未完全掌握El Capitan,我最近也更新了XCode,您可能需要使用El Capitan SDK路径,接下来是:

更新资料

对于使用El Capitan的用户,以下命令将起作用:

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

更新资料

对于使用Sierra的用户,以下命令将起作用:

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

4
不适合我:“缺少libxml2。请访问nokogiri.org/tutorials/installing_nokogiri.html以获得安装依赖的帮助。” 仍然出现相同的错误。
Pop-A-Stash

1
必须添加--use-system-libraries。与之相比,它使用Xcode 5.1.1和brew进行了全新的特立独行安装。
jmg 2014年

11
必须添加--use-system-libraries以使其正常工作: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
Maverick

1
这是对我而言唯一适用于10.10.3的版本:sudo gem install nokogiri---with-iconv-lib = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include- with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-libraries
Erik Villegas

10
您可能想使用更通用的命令来更新您的答案,该命令应适用于所有OS X版本和Xcode安装路径:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp


20

我发现此日志,发现未找到gcc-4.2:

package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2

package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2

package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  conftest.c  -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L.  -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib     -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2  -lxml2  -lruby.1.9.1-static  -lpthread -ldl -lobjc  "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

为了解决这个问题,我使用自制软件安装了apple-gcc42,brew install apple-gcc42并创建了一个指向/ usr / bin的符号链接:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2


这对我来说并没有解决问题,我仍然有相同的错误消息:(
David Portabella

1
我完全从brew卸载了rvm和ruby,再次安装,并且可以正常工作。
David Portabella

3
所以,我只是跑步brew install apple-gcc42..并且可以正常工作。该命令对您不起作用?
squiter

4
我在xcode-select --install安装brew之前就跑了,现在一切正常。
Quickredfox

1
@LucyBain我真的不记得了....但是我觉得日志文件在同一目录gem_meake.out ...
squiter

15

如果您运行的是Xcode 5.1,则命令行工具不适用于nokogiri 1.6.1。您需要从Apple下载2013年10月下旬的工具。一旦运行

sudo xcode-select -s /Library/Developer/CommandLineTools/

设置计算机以使用Xcode 5.0.X命令行工具,然后运行

gem install nokogiri

如果您想在以后运行时将命令行工具重置为Xcode.app版本

sudo xcode-select -r

或者,您可以做的另一件事是添加标志以忽略未知的命令行参数。然后安装如下所示:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri

12

这是在OSX Mavericks上对我有用的东西:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc

令人惊讶的是,这是整个过程中唯一对我有帮助的东西。谢谢!
KonstantinK 2014年

问题是,sudo与RVM或rbenv一起使用会引起问题,因为root用户不知道沙盒式红宝石所在的位置。RVM安装页面对此进行了介绍。OP正在使用RVM,并且使用sudo将导致Nokogiri安装到Apple的Ruby中,而不是用户的Ruby中。所以,除非你不这样做SURE你想,如果你是Mac OS,或者到系统的Ruby,如果你在另一个* nix中安装到苹果的红宝石。
Tin Man

10

我在OSX Mavericks上,问题出在我的Ruby上。

所以,我用rvm重新安装了ruby:

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

我当时能够

gem install nokogiri --no-ri --no-rdoc

问题解决了。


凉。现在您在特立独行者上使用rvm尝试打开vim。SEGV错误?可爱。
蒂姆(Tim)

我不能删除gemset,因为文件夹不是空的,但是重新安装gemset(即使有错误)也可以!这是唯一对我有用的东西!
Onikoroshi

9

我通常喜欢使用系统提供的内容。这对我有用:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/

经过数小时的搜索后,这是唯一对我有用的解决方案,谢谢!:D
Rogerio Chaves 2014年

5

从Apple安装Mavericks 10.9.5更新和10.9 Developer工具更新后,我立即遇到了此问题。我跑了xcode-select --install,但这并没有解决问题。然后我打开XCode,接受eula,然后退出XCode。这解决了问题。


3

我今天在Maverick上遇到了这个问题,这就是我最终解决问题的方式:

brew update
brew install libiconv
brew link libiconv

确保您知道下面的Cellar mine中的libiconv版本是1.14,然后按以下方式安装:

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

如果您需要特定版本的nokogiri,例如-v'1.6.2.1',则安装为:

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

Nokogiri已成功安装!


也为我在优胜美地工作。上述答案都没有。
MattL 2015年

3

这与@thomas_witt的帖子相同,但可在Mac OS X Sierra上使用:

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

2

为了使安装正常进行,我必须修改gem install命令中的文件路径以使其与系统上的文件路径匹配。我有不同版本的libxml2和libiconv以及稍微不同的文件结构。经过修改的命令是:

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.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

我必须对文件路径非常谨慎。我经过多次尝试才能正确构建命令。
darkmoves 2013年

这是指向错误的libxml版本问题的另一种解决方案的链接
darkmoves 2014年

2

对于使用MacPorts的用户,请确保已libxml2通过安装MacPorts。然后输入:

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

这应该可以解决问题,无需使用完整路径即可为我工作。



2

这是另一个参考:

system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

安装nokogiri时出现错误

像这样的错误:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)

您必须先安装开发工具。

然后可能需要:

$ xcode-select --install

或者如果您遇到类似的错误

checking for libxml/parser.h... no

我只是通过以下方式修复lib路径:

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

对于捆绑包,需要类似以下内容:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install

2

这对我有用

system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1 

只需在以下两个命令下运行

$ xcode-select --install

它将要求您下载“是”,然后要求安装xcode组件,然后单击“安装”。

现在尝试使用以下命令安装gem

gem install nokogiri --no-ri --no-rdoc

这对我来说适用于上述环境。


1

对于Mavrick,我遇到了同样的问题,解决方案是:

xcode-select --install

但是,这不起作用,因为Apple的命令行工具下载页面目前没有公开提供该安装程序。

因此,如果您想使用Mavricks的命令行工具,则需要拥有一个付费帐户。然后,只有您才能安装它。安装后,Nokogiri将不会遇到此问题。


我没有付费帐户,并且已经安装了命令行工具。我使用终端安装,但是我的一个朋友使用该下载页面安装,他也没有付费帐户。
squiter

我同意你的看法。直到2013年11月24日,我也经历了同样的事情。但是,如果您现在转到该页面并尝试访问它,它将出现此错误。奇怪的是,您使用自己的凭据登录,但它将使您以访客身份登录。这是我在帐户页面上看到的消息:苹果开发人员计划大警告我们无法处理您的请求。请返回上一页,或退出浏览器,然后重试您的请求。如果需要帮助,请联系Apple开发人员支持。
shinesecret

1

我在全新安装Mavericks时遇到了相同的错误。经过判断后,我将Xcode应用程序包重命名为Xcode 5.0.1.app

显然,Nokogiri安装脚本未引用其路径,因此文件名中的空格引起了各种麻烦。直到我尝试brew install libxml2该错误才变得明显。

经验教训:文件名中的空格是邪恶的。


1

就我而言,我必须在符号链接后实际运行/usr/bin/gcc-4.2。您必须接受许可协议,否则该协议将挂起。


1

错误消息在此处提供了线索: The compiler failed to generate an executable file. (RuntimeError)

xcode-select --install # not sure if this is required  
brew install apple-gcc42  
gem install nokogiri  

您可能还需要酝酿安装并将其链接:

libxml2 libxslt

1
brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
    --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/*

1

对我来说,错误是gcc(4.2.1,从Homebrew安装)抱怨:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

我仅通过强制x86_64解决了该问题:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

升级到Maverick之后,我遇到了类似的问题。我将RVM与Ruby 1.9.2-p320一起使用,并且尝试了此处给出的几种解决方案,但没有任何解决方案。

然后我更改为Ruby 2.1.2,并bundle install立即安装了Nokogiri。


1

如果有人在使用捆绑器时在capitan上遇到此问题。

确保已安装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

1

在尝试运行Rails 3版本应用程序时,过去两周我遇到了相同的问题。

问题是您的rvm / rbenv没有使用C编译器。

对rvm使用此命令以获取兼容的C编译器

CC=gcc rvm install-version

因此,如果您使用的是Ruby 1.9.3,请以这种方式使用

CC=gcc rvm install-1.9.3

每次您无法捆绑安装或任何其他内容时,请使用此命令。 这个东西正在El Capitan上运行,rails 3.2.16,ruby 1.9.3,mysql 5.7希望能解决问题。

在尝试运行Rails 3版本应用程序时,过去两周我遇到了相同的问题。

问题是您的rvm / rbenv没有使用C编译器。

对rvm使用此命令以获取兼容的C编译器

CC=gcc rvm install-version

因此,如果您使用的是Ruby 1.9.3,请以这种方式使用

CC=gcc rvm install-1.9.3

每次您无法捆绑安装或任何其他内容时,请使用此命令。

这个东西正在El Capitan上运行,rails 3.2.16,ruby 1.9.3,mysql 5.7希望能解决问题。 另外,如果您已经拥有Xcode,并且在安装任何gem时也没有遇到相同的错误,请尝试此解决方案。


1

升级后不久遇到相同问题后,我在这里添加了发现:http : //jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

解决方法就是这两个命令:

xcode-select --install
gem install nokogiri

希望能帮助到你。


5
请在此处发布内容-链接可能会被破坏(请参阅指南)
Justin 2013年

它对我有所帮助,尽管我确实回荡了在此处而不是在链接中发布答案的感觉:)
Richard

这是在堆栈溢出时不建议使用的仅链接的答案。除了在您自己的站点上发布链接之外,还可以在您的答案中总结重要信息。这样,如果链接像他们倾向于的那样腐烂,答案将继续提供一些价值。
Tin Man'1

0

我也有这个问题。运行brew doctor表明我在/ user / local / lib中有一个意外版本的libiconv。

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libcharset.1.dylib
    /usr/local/lib/libiconv.2.dylib

所以我删除了它们,并重新发布了libxml:

rm  /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
🍺  /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

最后,我安装了nokogiri:

Jeff$ gem install nokogiri
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed

我有一个类似的问题(一个未链接的libiconv)。我取消链接libiconv,然后重新安装。brew安装libiconv,然后gem安装nokogirl。
2014年

0

这些答案都不适合我的特定情况,而且由于我是新手,因此我认为我的解决方案可能可以帮助其他人。

我正在使用优胜美地,并且正在使用Ruby 1.9.3p547。p547存在安全漏洞,因此我试图更新到Ruby 1.9.3p550或更高版本。我使用RVM,然后尝试迁移我的gem,但其中很多都没有。然后我尝试捆绑安装,但是失败了,我认为可能是各种路径和依赖项之间存在冲突,因此我删除了旧版本的Ruby。这打破了一切。

即使下载了XCode并最近更新了CLI工具,我仍然收到一条消息,说缺少C编译器。我找到了另一个网站,告诉我要下载第三方GCC。这使一切变得更糟。

现在,我收到一条消息,说我需要修复配置文件和PATH,否则重新安装OSX可能会更容易。所以我做了。

无论如何,更长的故事只会持续很长时间:最终对我有用的解决方案是摆脱RVM并仅使用brew在运行之前下载我想要的Ruby版本bundle install。安装正确版本的Nokogiri FIRST。

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install

使用sudo它将导致Nokogiri被安装在root唯一已知的Ruby中,除非使用Homebrew,否则很有可能是Apple安装的Ruby 。因为OP使用的是RVM,这意味着Rko管理的Ruby无法看到Nokogiri,只会使问题更加复杂。sudo在这种情况下,使用也许可以解决问题,但是不应将其与RVM或rbenv托管的Ruby一起尝试。RVM在安装文档中专门说不要这样做。
Tin Man

0

对于Windows,您还可以尝试本地安装:

  1. 根据您的环境下载适当的gem。

  2. 转到保存gem文件的目录。

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

如果不起作用,则可以检查是否安装了zlib和mingw或正确的c编译器。


0

这里的每件事都没有对我有用(我没有进入Brew重新安装,是的),但是最终做到了(通过一些无关项目的错误报告找到了):

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

祝好运。对#yakshaving表示赞成!


-3

检查您的命令行工具版本。将计算机设置为使用Xcode 5.0.X命令行工具,然后运行:

gem install nokogiri

您应该使用此命令。打开终端。并编写此命令。出口NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat 2015年
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.