ruby-on-rails - 使用 Ruby 1.9.3 的 Windows 8 x64 上的 nokogiri gem 缺少 libxml2

标签 ruby-on-rails ruby windows-8 nokogiri libxml2

我在搜索类似问题时发现 Nokogiri 还没有 Ruby 2.0 的 x64 支持。然而,虽然我在 Windows x64 机器上,但我的 Ruby 版本是 ruby 1.9.3p392 (2013-02-22) [i386-mingw32] 来自 railsinstaller.org(使用 Rails 3.2.13 )。这也意味着 DevKit 已经安装。

gem install nokogiri --pre 出现此错误:

    Temporarily enhancing PATH to include DevKit...
    Building native extensions.  This could take a while...
    ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb
    checking for libxml/parser.h... no
    -----
    libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokog
    iri.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.

    Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=C:/RailsInstaller/Ruby1.9.3/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib=${xml2-dir}/lib

虽然 gem install nokogiri --pre -- --with-xml2-lib --with-xslt-lib --platform=ruby 引发此错误:

    Temporarily enhancing PATH to include DevKit...
    Building native extensions.  This could take a while...
    ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb --with-xml2-lib --wi
    th-xslt-lib --platform=ruby
    *** 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
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=C:/RailsInstaller/Ruby1.9.3/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib=${xml2-dir}/lib

    C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/mkmf.rb:1544:in `dir_config': undefin
    ed method `split' for true:TrueClass (NoMethodError)
    from extconf.rb:147:in `<main>'

我无法通过 SO/google groups/blogs/etc 找到具体的解决方案,有吗?

这是我的路径:

    PATH=C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby1.9.3\bin;C:\windows;C:\win
    dows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files(
    x86)\Git\cmd;C:\Program Files\nodejs\;C:\cygwin\bin;C:\mingw64\x86_64-w64-mingw3
    2\bin;C:\mingw64\bin;C:\Program Files (x86)\Heroku\bin;C:\Program Files (x86)\gi
    t\cmd;C:\Users\Joshua\AppData\Roaming\npm;C:\mingw64\x86_64-w64-mingw32\bin;C:\P
    rogram Files\PostgreSQL\9.2\bin;

我还尝试从 http://linux.softpedia.com/progDownload/libxml2-Download-162.html 下载 libxml2并将内容放入 C:\RailsInstaller\Ruby1.9.3\lib 以及 C:\RailsInstaller\DevKit\lib 但我收到了相同的错误。

tl;dr 根据我传递的选项,似乎有两个不同的错误。 parser.h 错误和 TrueClass“拆分”错误。

最佳答案

我也有过类似的挫败感,但我只是删除了 Ruby 2.0,以及为简化事情而安装的 DevKit。

然后我:

现在一切正常。

请务必在以下位置完成所有检查: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

关于ruby-on-rails - 使用 Ruby 1.9.3 的 Windows 8 x64 上的 nokogiri gem 缺少 libxml2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014854/

相关文章:

c# - WinRT : Open previously opened files again after close

ruby-on-rails - 仅在创建对象时调用 after_update

ruby-on-rails - 在模板中循环

ruby - 错误的参数类型类(预期模块)(TypeError)

ruby - 如何在字符串中使用转义字符

mysql - 如何让 Ruby MySQL 返回 PHP 像 DB SELECT 结果

javascript - 在 rails 上初始化应用程序 css 和 javascript 标签时,不显示完整日历标题工具栏按钮

javascript - 在 Rails 中存储前端功能?

windows-8 - WinRT 作为 Win32 API 的替代品

windows-8 - 适用于 Dropbox、EverNote 和 Google Doc (WinRT) 的 SDK