OS X Mavericks,无法安装libxml-ruby gem?

4

在干净安装了Mac OS 10.9后,从10.7.5升级到现在,我似乎无法安装libxml-ruby gem。 我使用Homebrew和RVM来管理我的环境,并安装了以下内容:

brew list

apple-gcc42 gcc46       libmpc08    mpfr2       postgresql
autoconf    gmp4        libtool     mysql55     ppl011
automake    libgpg-error    libxml2     openssl     readline
cloog-ppl015    libiconv    libxslt     ossp-uuid   wget
cmake       libksba     libyaml     pkg-config

输入 brew doctor 后会返回以下内容:

Your system is ready to brew.

运行bundle install会产生以下输出,我已经删除了链接。显然,我无法在没有10个声望的情况下发布超过两个链接:
Fetching source index from . . .
Fetching source index from . . .
Fetching source index from . . .
Resolving dependencies..............................................................................................
Using rake (10.0.4) 
Using Platform (0.4.0) 
Using open4 (1.3.0) 
Using POpen4 (0.1.4) 

等等,最后到达:

Using nokogiri (1.5.9) 

etc.

Installing libxml-ruby (2.3.3) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/iandonovan/.rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb --with-opt-include=/usr/local/Cellar/libxml2/2.9.1/include/
extconf.rb:17: Use RbConfig instead of obsolete and deprecated Config.
checking for socket() in -lsocket... no
checking for gethostbyname() in -lnsl... no
checking for atan() in -lm... no
checking for atan() in -lm... yes
checking for inflate() in -lz... yes
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for libxml/xmlversion.h... yes
creating extconf.h
creating Makefile
make
compiling libxml.c
compiling ruby_xml.c
ruby_xml.c: In function 'rxml_default_tree_indent_string_set':
ruby_xml.c:612:23: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
compiling ruby_xml_attr.c
compiling ruby_xml_attr_decl.c
ruby_xml_attr_decl.c: In function 'rxml_attr_decl_name_get':
ruby_xml_attr_decl.c:57:5: warning: pointer targets in passing argument 2 of 'rxml_new_cstr' differ in signedness [-Wpointer-sign]
ruby_xml_encoding.h:11:7: note: expected 'const char *' but argument is of type 'const xmlChar *'
compiling ruby_xml_attributes.c
compiling ruby_xml_cbg.c
compiling ruby_xml_document.c
ruby_xml_document.c: In function 'rxml_document_canonicalize':
ruby_xml_document.c:232:10: warning: unused variable 'list_in' [-Wunused-variable]
ruby_xml_document.c:334:3: warning: passing argument 4 of 'xmlC14NDocDumpMemory' from incompatible pointer type [enabled by default]
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2/libxml/c14n.h:76:3: note: expected 'xmlChar **' but argument is of type 'xmlChar * (*)[256]'
ruby_xml_document.c:199:7: warning: variable 'length' set but not used [-Wunused-but-set-variable]
ruby_xml_document.c: In function 'rxml_document_root_set':
ruby_xml_document.c:757:14: warning: variable 'xroot' set but not used [-Wunused-but-set-variable]
ruby_xml_document.c: In function 'rxml_document_save':
ruby_xml_document.c:805:13: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
compiling ruby_xml_dtd.c
compiling ruby_xml_encoding.c
compiling ruby_xml_error.c
compiling ruby_xml_html_parser.c
compiling ruby_xml_html_parser_context.c
ruby_xml_html_parser_context.c: In function 'rxml_html_parser_context_options_set':
ruby_xml_html_parser_context.c:307:7: warning: variable 'result' set but not used [-Wunused-but-set-variable]
compiling ruby_xml_html_parser_options.c
compiling ruby_xml_input_cbg.c
compiling ruby_xml_io.c
compiling ruby_xml_namespace.c
compiling ruby_xml_namespaces.c
compiling ruby_xml_node.c
ruby_xml_node.c: In function 'rxml_node_to_s':
ruby_xml_node.c:622:54: error: dereferencing pointer to incomplete type
ruby_xml_node.c:624:56: error: dereferencing pointer to incomplete type
make: *** [ruby_xml_node.o] Error 1
Gem files will remain installed in /Users/iandonovan/.rvm/gems/ruby-1.9.3-p392@standard-set/gems/libxml-ruby-2.3.3 for inspection.
Results logged to /Users/iandonovan/.rvm/gems/ruby-1.9.3-p392@standard-set/gems/libxml-ruby-2.3.3/ext/libxml/gem_make.out
An error occurred while installing libxml-ruby (2.3.3), and Bundler cannot continue
Make sure that `gem install libxml-ruby -v '2.3.3'` succeeds before bundling.

运行独立的gem安装命令 gem install libxml-ruby -v '2.3.3',会返回相同的错误信息。 已经安装了XCode 5.0.1和开发工具。由于“网络问题”(根据对话框),我无法通过 xcode-select --install 安装dev工具,而是从developer.apple.com下载了Mavericks软件包。 有其他人遇到过这个问题吗?Nokogiri似乎可以很好地安装(捆绑了1.5.9版本),但是libxml-ruby无法完成安装。
1个回答

5
安装的 libxml-ruby 版本太旧,无法与 libxml2 版本兼容。假设您已经拥有最新的 libxml2 版本 - 2.9.1。 libxml-ruby 在版本 2.4.0 之前不兼容 libxml2 2.9.x。您可以在此处找到其他信息-https://github.com/xml4r/libxml-ruby/blob/master/HISTORY
为什么要安装这么旧的 libxml-ruby 版本?如果尝试安装更新版本,应该可以正常工作。

我们肯定要更新我们的gemfile,而这个事件正好是一个催化剂。谢谢。 - Ian Donovan
1
如果您必须使用早于2.4.0的版本,则可以手动将此差异实现为补丁:https://github.com/xml4r/libxml-ruby/commit/1c4878f3fdcd0cdf2e0fd09a5e6147a6ed237cf0 - Alan Ivey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接