OS X 10.8上的Nokogiri

时间:2013-05-20 01:35:40

标签: ruby macos nokogiri

我知道SO上有很多问题,但我真的无法在我的OS X 10.8.3系统上安装Nokogiri。

我做了仪式:

brew install libxml2 libiconv libxslt
brew link --force libxml2 libiconv libxslt

但在执行sudo gem install nokogiri之后我一直收到这些错误:

Fetching: nokogiri-1.5.5.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... 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.

有趣的是,libiconv错误随机交替出现libxml2错误。 我按照http://nokogiri.org/tutorials/installing_nokogiri.html的说明操作,但它不起作用。

修改

我不相信刚刚发生的事。真的,我没有。

brew uninstall libxml2 libiconv libxslt

现在可以使用,gem安装它。它有点抱怨:

No definition for parse_memory

No definition for parse_file

No definition for parse_with

No definition for get_options

No definition for set_options
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block

但至少在Middleman(我正在使用它)它就像一个魅力。我疯了吗?

1 个答案:

答案 0 :(得分:1)

实际上对我有用的是这个。

酿造

安装brew后,安装以下库:

brew install libxml2 libxslt

RVM

现在,bash 中的(如果你在zsh,只需发出bash移动到bash shell):

curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled

获取RVM(Ruby版本管理器)。在bash|zshrc中,粘贴以下行:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

在启动时加载rvm。

注意如果您未使用brew安装上述库,则rvm安装将失败。

重新启动终端,然后发出:

rvm install 1.9.3 # or the version you like, 1.9.3 worked for nokogiri

要将此版本用作系统默认版,请发出:

rvm --default use 1.9.3

通过gem

安装nokogiri

现在gem install nokogiri命令应该可以正常工作。

注意在处理sudorvm时,省略gem是最基本的。这是我错过的事情之一,让我发疯了。