2013-06-24 2 views
5

Je sais que c'est simple mais je n'arrive pas à comprendre. J'ai besoin de lancer un script en Ruby et ça nécessite Nokogiri. J'ai de l'expérience dans d'autres langues mais pas dans Ruby.Impossible d'installer Nokogiri pour Ruby dans Windows

Voici mon système:

Ruby 2.0.0-p195 (x64) is installed @C:\Programs\RubyLanguage

Ruby Development Kit (mingw64-64-4.7.2-20130224-1432) is installed @C:\Programs\RubyDevKit

Quand je lance gem install nokogiri je reçois cette erreur:

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' 

assez facile. J'ai donc suivi the link of above et l'ai fait à l'étape 3. Cependant, l'étape 4 dit générer "config.yml". Donc j'ai fait. Maintenant, le fichier est une liste vide avec quelques commentaires. Je ne peux toujours pas installer Nokogiri à cause d'une erreur ci-dessus et je ne semble pas aller nulle part avec DevKit. Ce que je dis, c'est que les étapes de l'installation du kit de développement ne sont pas assez claires pour moi.


Mise à jour il dit maintenant l'installation de Nokogiri a échoué (DevKit Works selon l'étape 5: documentation Installation pour JSON-1.8.0 1 gemme installée)

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 log

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 
+0

Vous avez absolument _need_ DevKit installé pour travailler avec Nokogiri sur Windows (sauf si vous avez d'autres outils de compilation installés, ce qui ne semble pas être le cas). Les instructions peuvent être trouvées [ici] (https://github.com/oneclick/rubyinstaller/wiki/Development-Kit). Qu'est-ce qui ne fonctionne pas pour vous avec l'installation de DevKit? – PinnyM

+0

Je recommande d'utiliser ruby ​​1.9.3, 2.0 sur Windows est une proposition dicieuse en ce moment – pguardiario

Répondre

13

Mise à jour: Depuis la version 1.6.2, Nokogiri maintenant prend en charge la version 64 bits de Ruby 2.0.0. (Notez qu'il nécessite libxml> = 2.6.21)

Voici la réponse si vous avez encore besoin d'installer la version x86 pour une raison ou si vous voulez comprendre comment installer et construire un petit bijou à l'aide DevKit:


Nokogiri ne supporte pas encore le version 64 bits de Ruby 2.0.0. Vous pouvez lire à ce sujet et follow the status here.

Mais Nokogiri ne en charge la version x86 de rubis 2.0.0. Vous devriez être en mesure d'installer la gemme sur l'installation 2.0.0 x86.

Il est assez facile à installer à la main. Je préfère cela sur RailsInstaller parce que j'ai besoin de maintenir d'autres choses telles qu'elles sont.Voici comment:

  1. Téléchargez et décompressez les fichiers correspondant à la version dont vous avez besoin. Assurez-vous de download the correct version of DevKit pour la version x86 de 2.0.0.

  2. Fix de votre chemin: Assurez-vous que votre chemin inclut les répertoires au rubis droit, bijou, et DevKit dirs: Supposons que vous avez installé la version x86 de Ruby 2.0.0 dans C:\rubies\ruby-2-0-0-x86 et le DevKit associé en C:\rubies\DevKit-xxxx-x86 vous aurez besoin pour inclure ces répertoires dans votre CHEMIN:

    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 \ bin

  3. Injecter DevKit dans l'installation ruby ​​droite: Une fois que vous avez installé ruby ​​et pouvez obtenir le informations correctes lorsque vous tapez ruby -v, puis exécutez ruby dk.rb init - ce qui va mettre DevKit mis en place & 'injecté' dans la version correcte de ruby. (NB je dois toujours modifier le fichier config.yml qui est produit et mis dans le bon chemin à l'installation rubis que je veux. Ne pas transpirer si vous avez besoin de le faire.)

0

Yup ... Déclassement vers la version 1.9.3. Tnx pour l'aide. Je mets le résumé ici:

  • Ruby 1.9.3 Installer (Ne pas changer d'installation Nom de ex.RubyLang ou
    config ne trouve pas automatiquement)

  • Installer DevKit (Installation Suivez DevKit étapes)

  • Installez Nokogiri

0

Je n'étais pas capable d'installer x64 Nokogiri pour Ruby 2.0 sur Windows 7, mais le binary gem semble fonctionner.