无法在 Windows 中安装 Nokogiri for Ruby



我知道这很简单,但我就是想不通。我需要用Ruby运行一个脚本,它需要Nokogiri。我确实在其他语言方面有一些经验,但在Ruby方面没有。

这是我的系统:

Ruby 2.0.0-p195(x64)已安装在C:\Programs\RubyLanguage

Ruby开发工具包(mingw64-64-4.7.2-20130224-1432)安装在C:\Programs\RubyDevKit

当我运行gem install nokogiri时,我得到这个错误:

    ERROR:  Error installing nokogiri:
        The 'nokogiri' native gem requires installed build tools.
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

很简单。所以我按照上面的链接做了第3步。然而,步骤4表示生成";配置yml";。我照做了。现在,该文件是一个包含一些注释的空列表。由于上面的错误,我仍然无法安装Nokogiri,而且我似乎无法使用DevKit。我想说的是,安装开发工具包的步骤对我来说还不够清楚


更新它现在说Nokogiri的安装失败(DevKit根据步骤5工作:安装json-1.8.0的文档安装了1颗宝石)

mkmf.log: package configuration for libxslt is not found
package configuration for libxml-2.0 is not found
package configuration for libiconv is not found
find_header: checking for libxml/parser.h... -------------------- no
"x86_64-w64-mingw32-gcc -o conftest.exe -IC:/Programs/RubyLanguage/include/ruby-2.0.0/x64-mingw32 -IC:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/backward -IC:/Programs/RubyLanguage/include/ruby-2.0.0 -I. -IC:/Programs/RubyLanguage/include/libxml2 -IC:/Programs/RubyLanguage/include -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration  -DXP_WIN -DXP_WIN32 -DUSE_INCLUDED_VASPRINTF -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c  -L. -LC:/Programs/RubyLanguage/lib -LC:/Programs/RubyLanguage/lib -L.      -lx64-msvcrt-ruby200  -lshell32 -lws2_32 -limagehlp -lshlwapi   "
In file included from C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/defines.h:153:0,
                 from C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/ruby.h:70,
                 from C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby.h:33,
                 from conftest.c:1:
C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/win32.h: In function 'rb_w32_pow':
C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/win32.h:776:16: warning: conversion to 'double' from 'long double' may alter its value [-Wconversion]
In file included from C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby.h:33:0,
                 from conftest.c:1:
C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/ruby.h: In function 'rb_float_value':
C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/ruby.h:777:6: warning: negative integer implicitly converted to unsigned type [-Wsign-conversion]
C:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/ruby.h:777:6: warning: negative integer implicitly converted to unsigned type [-Wsign-conversion]
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return 0;
8: }
/* end */
"x86_64-w64-mingw32-gcc -E -IC:/Programs/RubyLanguage/include/ruby-2.0.0/x64-mingw32 -IC:/Programs/RubyLanguage/include/ruby-2.0.0/ruby/backward -IC:/Programs/RubyLanguage/include/ruby-2.0.0 -I. -IC:/Programs/RubyLanguage/include/libxml2 -IC:/Programs/RubyLanguage/include -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration  -DXP_WIN -DXP_WIN32 -DUSE_INCLUDED_VASPRINTF -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline  conftest.c -o conftest.i"
conftest.c:5:27: fatal error: libxml/parser.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <libxml/parser.h>
/* end */

CMD日志

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:UsersSEPEHR>gem install nokogiri
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:/Programs/RubyLanguage/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:/Programs/RubyLanguage/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
        --without-xml2-lib=${xml2-dir}/lib
        --with-xslt-dir
        --without-xslt-dir
        --with-xslt-include
        --without-xslt-include=${xslt-dir}/include
        --with-xslt-lib
        --without-xslt-lib=${xslt-dir}/lib
        --with-libxslt-config
        --without-libxslt-config
        --with-pkg-config
        --without-pkg-config
        --with-libxml-2.0-config
        --without-libxml-2.0-config
        --with-pkg-config
        --without-pkg-config
        --with-libiconv-config
        --without-libiconv-config
        --with-pkg-config
        --without-pkg-config

Gem files will remain installed in C:/Programs/RubyLanguage/lib/ruby/gems/2.0.0/
gems/nokogiri-1.6.0 for inspection.
Results logged to C:/Programs/RubyLanguage/lib/ruby/gems/2.0.0/gems/nokogiri-1.6
.0/ext/nokogiri/gem_make.out

更新:从1.6.2版本开始,Nokogiri现在支持Ruby 2.0.0的64位版本。(注意,它需要libxml>=2.6.21)

如果您出于某种原因仍然需要安装x86版本,或者如果您想了解如何使用DevKit安装和构建gem:,答案如下


Nokogiri还不支持Ruby 2.0.0的64位版本。您可以在此处阅读并关注状态。

但是Nokogiri确实支持x86版本的ruby 2.0.0。您应该能够在2.0.0 x86安装中安装gem。

它很容易手动安装。比起RailsInstaller,我更喜欢它,因为我需要保持其他东西的原样。方法如下:

  1. 下载并解压缩所需版本的文件。请确保下载适用于2.0.0 x86版本的DevKit的正确版本。

  2. 修复您的路径:确保您的路径包括正确的ruby、gem和DevKit目录:假设您在C:rubiesruby-2-0-0-x86中安装了ruby 2.0.0的x86版本,并在C:rubiesDevKit-xxxx-x86中安装了相关的DevKit,那么您需要在PATH:中包含这些目录

    C: \rubies\ruby-2-0-x86\binC: \rubies\ruby-2-0-x86\lib\rube\gems\2.0.0C: \rubies\DevKit-xxxx-x86\bin

  3. 将DevKit注入正确的ruby安装:一旦安装了ruby,并且在键入ruby -v时可以获得正确的信息,然后运行ruby dk.rb init——这将设置DevKit&'注入到正确的ruby版本中。(注意:我总是要编辑生成的config.yml文件,并将其放在我想要的ruby安装的正确路径中。如果你需要这样做,不要担心。)

是的。。。降级至1.9.3起作用。Tnx寻求帮助。我把总结放在这里:

  • 安装Ruby 1.9.3(不要将安装名称更改为e.RubyLang或
    配置无法自动找到)

  • 安装DevKit(遵循DevKit安装步骤)

  • 安装Nokogiri

我无法在Windows 7上安装用于Ruby 2.0的x64 Nokogiri,但二进制gem似乎可以工作。

相关内容

  • 没有找到相关文章

最新更新