sqlite3-ruby gem: nie można zbudować rozszerzenie natywne gem

głosy
19

Update: Sprawdź to kolejne pytanie: Gem aktualizacji w systemie Windows - jest ono przerwane?


W systemie Windows, kiedy to zrobić:

gem install sqlite3-ruby

Pojawia się następujący błąd:

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
        ERROR: Failed to build gem native extension.

c:/ruby/bin/ruby.exe extconf.rb install sqlite3-ruby --platform Win32
checking for fdatasync() in rt.lib... no
checking for sqlite3.h... no

nmake
'nmake' is not recognized as an internal or external command,
operable program or batch file.


Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out

To samo dzieje się z gem hpricot . Wydaje mi się, pamiętam dobrze zainstalowane na <1,0 perełki te kamienie, ale teraz jestem na 1.2.0, rzeczy poszły ciemny.

Próbowałem też tak:

gem install sqlite3-ruby --platform Win32

Rzecz jasna, to nie działa albo (ten sam błąd)

Czy ktoś wie, co tu się dzieje i jak to naprawić?


Update: Sprawdź to kolejne pytanie: Gem aktualizacji w systemie Windows - jest ono przerwane?

Utwórz 04/09/2008 o 12:40
źródło użytkownik
W innych językach...                            


6 odpowiedzi

głosy
2

Czy to możliwe, że najnowsza wersja nie została jeszcze przygotowana do Win32 jeszcze? Ponieważ ten szczególny klejnot ma powiązania do skompilowanego kodu, wymagałoby to klejnot danej platformy. Jeśli wymusić instalację wersji 1.2.3 zamiast obecnego 1.2.4, wersja platformy specyficzne chce się zainstalować, ale kiedy pozwalają gem spróbować zainstalować aktualną wersję, mam rodzajowe wersję 1.2.4 (w klejnotów Folder biblioteki, brakuje sufiks -x86-mswin32 że inne foldery SQLite3-ruby mają w swoich nazwach.

Może ktoś może odpowiedzieć jak klejnot zajmuje szczególne perełki platformy. Są oddzielne kamienie wrzucone dla każdej platformy i wybiera, który jeden gem oprogramowanie do ciągnięcia w dół?

Odpowiedział 04/09/2008 o 12:54
źródło użytkownik

głosy
26

Jak sugeruje Nathan, to wydaje się być związane z faktem, że najnowsze wersje SQLite3-ruby i hpricot klejnotów nie wydają się mieć wersje Windows. Oto, co zrobić, gdy w obliczu tej sytuacji (uwaga, nazwa gem jest automatycznie symbolu wieloznacznego, więc można wpisać tylko sql i uzyskać listę wszystkich klejnotów rozpoczynających się z SQL ):

$ gem list --remote --all sqlite

*** REMOTE GEMS ***

sqlite (2.0.1, 2.0.0, 1.3.1, 1.3.0, 1.2.9.1, 1.2.0, 1.1.3, 1.1.2, 1.1.1, 1.1)
sqlite-ruby (2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2)
sqlite3-ruby (1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.9.0, 0.6.0, 0.5.0)

Następnie można wybrać wersję, którą chcesz zainstalować:

gem install sqlite3-ruby -v 1.2.3

Aby pomyślnie zainstalować hpricot, zrobiłem tak:

gem install hpricot -v 0.6

Irytująco, robiąc gem updatepróbuje zaktualizować kamienie, aby ich najnowszy, w podziale na-Windows wersjach. Kiedy procedura aktualizacji wystąpi błąd, to rowy was z całego procesu. Jest (hacky) rozwiązanie tego problemu tutaj .

Tak, jest to kwestia błąd w klejnoty? Należy perełki nie automatycznie wykryć platformę i zainstalować najnowszą wersję zgodną?

Odpowiedział 04/09/2008 o 13:13
źródło użytkownik

głosy
1

Ja też wpadłem na ten problem. Warto wiedzieć, że różnica między 1.2.3 i 1.2.4 nie jest znacząca. Oto 1.2.4. Informacje o wydaniu:

Nazwa Release: 1.2.4

Uwagi: To wydanie aktualizuje tylko wygenerowany plik C w celu odzwierciedlenia zmian zgodnością, które zostały wprowadzone do pliku SWIG. Binary buduje (na przykład Windows) nie są naruszone, i nie wymagają aktualizacji. Na ogół nie trzeba będzie tę aktualizację, chyba że używasz wersji Ruby przed 1.8.6. (źródło: . 1.2.4 informacje o wydaniu )

Nadzieję, że pomaga innym!

Odpowiedział 14/12/2008 o 16:22
źródło użytkownik

głosy
9

Miałem ten sam problem na Ubuntu, to rozwiązało problem dla mnie:

http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00339.html

Odpowiedział 24/01/2009 o 19:17
źródło użytkownik

głosy
1

Miałem ten sam problem w systemie Windows i mam installé MinGW http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/download i problemu odszedł :-)

C:> gem install hpricot pomyślnie zainstalowany hpricot-0.8.2-x86-mswin32 1 gem zainstalowany Instalacja ri dokumentacji hpricot-0.8.2-x86-mswin32 ... Instalowanie dokumentacji rdoc dla hpricot-0.8.2-x86-mswin32. ..

C:> gem zainstalować Ruby-postgres pomyślnie zainstalowany Ruby-postgres-0.7.1.2006.04.06-x86-mswin32 1 gem zainstalowany Instalacja ri dokumentacji dla Ruby-postgres-0.7.1.2006.04.06-x86-mswin32 ... Instalowanie dokumentacji rdoc dla Ruby-postgres-0.7.1.2006.04.06-x86-mswin32 ...

Odpowiedział 21/12/2009 o 14:11
źródło użytkownik

głosy
2

Pierwszy z sqlite.org ( http://www.sqlite.org/download.html )
do pobrania ->
binaria: sqlite-dll-win32-x86-3071700.zip
i kod źródłowy: sqlite-autoconf-3071700.tar.gz
potem wyciągać jak:

-include
    --sqlite3.h
    --sqlite3ext.h
-lib
    --shell.c
    --sqlite3.c
    --sqlite3.def
    --sqlite3.dll

Ostatnia zainstalować gem jak:

gem install sqlite3 --platform=ruby -- --with-sqlite3-include=path\to\include  
 --with-sqlite3-lib=path\to\lib --no-ri --no-rdoc

Powodzenia!

Odpowiedział 28/07/2013 o 10:04
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more