2013-06-24 17 views
5

Wiem, że to jest proste, ale po prostu nie mogę tego rozgryźć. Muszę uruchomić skrypt w Ruby i wymaga Nokogiri. Mam doświadczenie w innych językach, ale nie w Ruby.Nie można zainstalować Nokogiri dla Ruby w Windows

Oto mój system:

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

Kiedy biegnę gem install nokogiri otrzymuję ten błąd:

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' 

dość łatwe. Więc poszedłem za the link of above i zrobiłem krok 3. Jednak krok 4 mówi generować "config.yml". Więc zrobiłem. Teraz plik jest pustą listą z kilkoma komentarzami. Wciąż nie mogę zainstalować Nokogiri z powodu błędu powyżej i nie wydaje mi się, żebym dostał się do DevKit. Mówię tylko, że kroki w instalacji Development Kit nie są dla mnie wystarczająco jasne.


Aktualizacja teraz mówi instalacja Nokogiri zawiodły (DevKit działa zgodnie z etapem 5: Instalacja dokumentacji json-1.8.0 1 gem zainstalowany)

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 logowaniu

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

Absolutnie _need_ DevKit zainstalowany do pracy z Nokogiri w oknach (chyba, że ​​masz zainstalowane inne narzędzia do kompilacji, co nie wydaje się być takie). Instrukcje można znaleźć [tutaj] (https://github.com/oneclick/rubyinstaller/wiki/Development-Kit). Co dokładnie nie działa z instalacją DevKit? – PinnyM

+0

Polecam korzystanie z ruby ​​1.9.3, 2.0 na windowsie jest obecnie niebezpieczną propozycją – pguardiario

Odpowiedz

13

Update: Począwszy od wersji 1.6.2, nokogiri teraz ma obsługuje 64-bitową wersję Ruby 2.0.0. (Zauważ, że wymaga to libxml> = 2.6.21)

Oto odpowiedź, jeśli trzeba jeszcze zainstalować wersję x86 z jakiegoś powodu lub jeśli chcesz zrozumieć, w jaki sposób zainstalować i zbudować gem za pomocą DevKit:


Nokogiri nie obsługuje jeszcze wersji Ruby 2.0.0 w wersji w wersji 64-bitowej. Możesz przeczytać o tym i follow the status here.

Ale Nokogiri ma obsługuje x86 wersję ruby ​​2.0.0. Powinieneś być w stanie zainstalować gem na instalacji 2.0.0 x86.

Jest bardzo łatwy do ręcznej instalacji. Wolę to przez RailsInstaller, ponieważ muszę utrzymywać inne rzeczy takimi, jakie są.Oto, jak:

  1. Pobierz i rozpakuj pliki dla odpowiedniej wersji. Pamiętaj, aby download the correct version of DevKit dla wersji 2.0.0 x86.

  2. Fix ścieżkę: Upewnij się, że ścieżka zawiera katalogi do odpowiednich katalogów rubin, klejnot, a DevKit: zakładamy zainstalowaniu wersji x86 Ruby 2.0.0 do C:\rubies\ruby-2-0-0-x86 i związany DevKit do C:\rubies\DevKit-xxxx-x86 trzeba będzie aby włączyć te katalogi do zmiennej PATH:

    C: \ rubiny \ ruby-2-0-0-x86 \ bin C: \ rubiny \ ruby-2-0-0-x86 \ lib \ ruby ​​\ klejnoty \ 2.0.0 C: \ rubsy \ DevKit-xxxx-x86 \ bin

  3. Wprowadzanie programu DevKit do prawego ruby: Po zainstalowaniu ruby ​​i uzyskaniu poprawne informacje po wpisaniu ruby -v, a następnie uruchom ruby dk.rb init - co spowoduje, że DevKit skonfiguruje & "wstrzyknięty" w prawidłową wersję ruby. (NB I zawsze trzeba edytować plik config.yml który jest produkowany i umieścić w odpowiedniej ścieżce do instalacji ruby ​​chcę. Nie przejmuj się, jeśli chcesz to zrobić.)

0

Tak ... Obniżono do wersji 1.9.3. Tnx o pomoc. Włożyłem podsumowanie tutaj:

  • Install Ruby 1.9.3 (Nie należy zmieniać nazwy Instalacja do ex.RubyLang lub
    config nie znajdzie go automatycznie)

  • Install DevKit (Wykonaj DevKit Instalacja kroki)

  • Install nokogiri

0

nie byłem w stanie zainstalować x64 Nokogiri dla Ruby 2.0 na Windows 7, ale wydaje się, że działa binary gem.

Powiązane problemy