5

私はこれが簡単であることを知っていますが、私はそれを理解することはできません. 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は「config.yml」を生成すると言います。だから私はしました。現在、ファイルはいくつかのコメントを含む空のリストです。上記のエラーのために Nokogiri をインストールできず、 DevKit でどこにもアクセスできないようです。私が言いたいのは、Development Kit のインストール手順が十分に明確でないということです。


更新すると、Nokogiri のインストールが失敗したと表示されます (手順 5 に従って DevKit Works : json-1.8.0 1 gem installed のドキュメントをインストールします)。

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:\Users\SEPEHR>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
4

3 に答える 3

13

更新: バージョン 1.6.2 の時点で、NokogiriRuby 2.0.0 の 64 ビット バージョンをサポートするようになりました。( libxml >= 2.6.21 が必要であることに注意してください)

なんらかの理由で x86 バージョンをインストールする必要がある場合、または DevKit を使用して gem をインストールしてビルドする方法を理解したい場合の答えは次のとおりです。


Nokogiri は、Ruby 2.0.0の64 ビットバージョンをまだサポートしていません。あなたはそれについて読んで、ここでステータスに従うことができます.

ただし、Nokogirix86バージョンの ruby​​ 2.0.0 をサポートしています。2.0.0 x86 インストールで gem をインストールできるはずです。

手で取り付けるのはとても簡単です。他のものをそのまま維持する必要があるため、RailsInstallerよりもそれを好みます。方法は次のとおりです。

  1. 必要なバージョンのファイルをダウンロードして解凍します。x86 バージョンの 2.0.0 用 の正しいバージョンの DevKitをダウンロードしてください。

  2. パスを修正します: パスに適切な ruby​​、gem、DevKit ディレクトリへのディレクトリが含まれていることを確認します: ruby​​ 2.0.0 の x86 バージョンとC:\rubies\ruby-2-0-0-x86関連する DevKit を にインストールしたと仮定するC:\rubies\DevKit-xxxx-x86と、これらのディレクトリを PATH に含める必要があります。

    C:\rubies\ruby-2-0-0-x86\bin C:\rubies\ruby-2-0-0-x86\lib\ruby\gems\2.0.0 C:\rubies\DevKit-xxxx-x86 \置き場

  3. DevKit を適切な ruby​​ インストールに挿入する: ruby​​ をインストールして、入力したときに正しい情報を取得できるようになったらruby -v、実行します。これによりruby dk.rb init、DevKit がセットアップされ、正しい Ruby バージョンに「挿入」されます。(注: 生成されたファイルを常に編集して、config.yml目的の Ruby インストールへの正しいパスに配置する必要があります。その必要がある場合でも、気にしないでください。)

于 2013-08-10T01:57:21.483 に答える
0

うん... 1.9.3へのダウングレードはうまくいきました。Tnx ヘルプ 。ここに要約を入れます:

  • Ruby 1.9.3 をインストールします (Install Name を ex.RubyLang に変更しないでください。config
    はそれを自動的に検出しません)。

  • DevKit をインストールします (DevKit のインストール手順に従います)。

  • のこぎりをインストール

于 2013-06-25T06:35:55.540 に答える
0

Windows 7 に x64 Nokogiri for Ruby 2.0 をインストールできませんでしたが、binary gemは動作しているようです。

于 2014-02-02T23:46:11.250 に答える