我知道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(我正在使用它)它就像一个魅力。我疯了吗?
答案 0 :(得分:1)
实际上对我有用的是这个。
安装brew
后,安装以下库:
brew install libxml2 libxslt
现在,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
现在gem install nokogiri
命令应该可以正常工作。
注意在处理sudo
和rvm
时,省略gem
是最基本的。这是我错过的事情之一,让我发疯了。