windows 如何在没有“extconf 失败:需要 libxml2”的情况下安装 ruby​​ gem libxml

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7418947/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 18:04:28  来源:igfitidea点击:

How do I install ruby gem libxml without 'extconf failure: need libxml2'

rubywindowsrubygemsgemlibxml2

提问by Zaz

I'm currently trying to install a ruby gem which fails because extconf says it needs libxml, so when I follow theseinstructions to install libxml (which includes theseinstructions for the ruby dev kit installation) I get the following output:

我目前正在尝试安装一个失败的 ruby​​ gem,因为 extconf 说它需要 libxml,所以当我按照这些说明安装 libxml(其中包括ruby 开发工具包安装的这些说明)时,我得到以下输出:

$ gem install libxml-ruby --platform x86-mswin32-60
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing libxml-ruby:
    ERROR: Failed to build gem native extension.

    c:/Ruby/bin/ruby.exe extconf.rb
checking for socket() in -lsocket... no
checking for gethostbyname() in -lnsl... no
checking for atan() in -lm... yes
checking for inflate() in -lz... no
checking for inflate() in -lzlib... no
checking for inflate() in -lzlib1... yes
checking for iconv_open() in -liconv... no
checking for libiconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... no
checking for xmlParseDoc() in -llibxml2... no
checking for xmlParseDoc() in -lxml2... no
*** 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
--8<--
    --with-xml2lib
    --without-xml2lib
 extconf failure: need libxml2.

Install the library or try one of the following options to extconf.rb:

  --with-xml2-config=/path/to/xml2-config
  --with-xml2-dir=/path/to/libxml2
  --with-xml2-lib=/path/to/libxml2/lib
  --with-xml2-include=/path/to/libxml2/include

Gem files will remain installed in c:/Ruby/lib/ruby/gems/1.9.1/gems/libxml-ruby-2.2.2 for inspection.
Results logged to c:/Ruby/lib/ruby/gems/1.9.1/gems/libxml-ruby-2.2.2/ext/libxml/gem_make.out

I'm on a Windows 7 x64 install using my minGW32-shell/git to install. The install fails with the same message from the windows ruby-enhanced command promt.

我正在使用 minGW32-shell/git 进行 Windows 7 x64 安装。安装失败并显示来自 windows ruby​​-enhanced 命令提示符的相同消息。

fwiw:

fwiw:

$ ruby -v
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]

$ git --version
git version 1.7.6.msysgit.0

$ gem -v
1.8.10

回答by Kelvin

You should try the nokogirigem instead of using libxml-ruby. It includes the precompiled libxml2 dlls as part of the installation, so you don't have to worry about building it yourself.

您应该尝试使用nokogirigem 而不是使用libxml-ruby. 它包含预编译的 libxml2 dll 作为安装的一部分,因此您不必担心自己构建它。

Nokogiri's API is different from libxml-ruby's, but I'm sure you'll find the same functionality.

Nokogiri 的 API 与 libxml-ruby 的不同,但我相信您会发现相同的功能。

If libxml-ruby is a dependency for another gem or app, you probably can't use nokogiri. What are you trying to do?

如果 libxml-ruby 是另一个 gem 或应用程序的依赖项,则您可能无法使用 nokogiri。你想做什么?

回答by Zaz

I had this as a comment, but was asked to post it as an answer for visibility:

我将此作为评论,但被要求将其发布为可见性的答案:

The answer to this question solved my problem: libxml-ruby failed to load at x86_64

这个问题的答案解决了我的问题:libxml-ruby failed to load at x86_64

回答by Dragan

Try to run

尝试运行

yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel

Than it should work

比它应该工作