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) 

等等

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 install, 会gem install libxml-ruby -v '2.3.3'返回相同的错误消息。

XCode 5.0.1 与开发人员工具一起安装。xcode-select --install由于“网络问题”(根据对话框),我无法安装开发工具,而是从 developer.apple.com 下载了 Mavericks 包。

有没有其他人处理过这个?Nokogiri 似乎安装得很好(捆绑了 1.5.9),但 libxml-ruby 无法完成。

4

1 回答 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?如果您尝试安装更新的版本,它应该可以正常工作。

于 2013-11-05T04:19:29.980 回答