Domanda

Aggiornamento: Dai un'occhiata a questa domanda di follow-up: Aggiornamento Gem su Windows: è rotto?


Su Windows, quando faccio questo:

gem install sqlite3-ruby

Ottengo il seguente errore:

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

La stessa cosa accade con la gemma hpricot.Mi sembra di ricordare che queste gemme sono state installate perfettamente su gemme <1.0, ma ora che sono su 1.2.0, le cose sono andate male.

Ho provato anche questo:

gem install sqlite3-ruby --platform Win32

Inutile dire che anche questo non funziona (stesso errore)

Qualcuno sa cosa sta succedendo qui e come risolverlo?


Aggiornamento: Dai un'occhiata a questa domanda di follow-up: Aggiornamento Gem su Windows: è rotto?

È stato utile?

Soluzione

Come suggerisce Nathan, ciò sembra essere correlato al fatto che le ultime versioni dei gem sqlite3-ruby e hpricot non sembrano avere versioni Windows.Ecco cosa fare di fronte a questa situazione (nota, il nome della gemma viene automaticamente contrassegnato con un carattere jolly, quindi puoi digitare semplicemente mq e ottieni un elenco di tutte le gemme che iniziano con mq):

$ 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)

Quindi puoi scegliere la versione che desideri installare:

gem install sqlite3-ruby -v 1.2.3

Per installare correttamente hpricot, ho fatto questo:

gem install hpricot -v 0.6

Fastidiosamente, facendo a gem update tenta di aggiornare i Gem alle versioni più recenti, non funzionanti su Windows.Quando la routine di aggiornamento rileva un errore, ti esclude dall'intero processo.Esiste una soluzione (complicata) a questo problema Qui.

Quindi, questo problema è un bug nelle gemme?Gems non dovrebbe rilevare automaticamente la piattaforma e installare l'ultima versione compatibile?

Altri suggerimenti

Ho avuto lo stesso problema su Ubuntu, questo ha risolto il problema per me:

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

È possibile che la versione più recente non sia stata ancora portata su Win32?Poiché questo particolare gem ha collegamenti al codice compilato, richiederebbe un gem specifico per la piattaforma.Se forzo l'installazione della versione 1.2.3 anziché dell'attuale 1.2.4, viene installata la versione specifica della piattaforma, ma quando permetto a gem di provare a installare la versione corrente, ottengo la versione generica 1.2.4 (nella versione gems cartella libreria, manca il suffisso -x86-mswin32 che le altre cartelle sqlite3-ruby hanno nei loro nomi.

Forse qualcun altro può rispondere a come gem gestisce le gemme specifiche della piattaforma.Vengono caricate gemme separate per ciascuna piattaforma e il software gem seleziona quale eliminare?

prima da sqlite.org(http://www.sqlite.org/download.html)
scarica ->
Binari precompilati: sqlite-dll-win32-x86-3071700.zip
e codice sorgente: sqlite-autoconf-3071700.tar.gz
quindi estrarre come:

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

ultimo gioiello di installazione come:

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

Buona fortuna!

Anch'io ho riscontrato questo problema.Vale la pena sapere che la differenza tra 1.2.3 e 1.2.4 non è significativa.Ecco i 1.2.4.note di rilascio:

Nome della versione:1.2.4

Appunti:Questa versione aggiorna solo il file C generato per riflettere le modifiche alla compatibilità apportate al file SWIG.Le build binarie (ad es. Windows) non sono interessate e non hanno bisogno di aggiornamenti.In generale, non avrai bisogno di questo aggiornamento a meno che tu non stia utilizzando una versione di Ruby prima di 1.8.6.(fonte: 1.2.4.note di rilascio)

Spero che questo aiuti gli altri!

Ho avuto lo stesso problema su Windows e ho installato MinGWhttp://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/downloade il problema è scomparso :-)

C:> GEM Installa Hpricot installato con successo Hpricot-0.8.2-X86-MSWIN32 1 GEM INSTALLATO DOCUMENTAZIONE RI per Hpricot-0.8.2-X86-MSWIN32 ...Installazione della documentazione RDoc per hpricot-0.8.2-x86-mswin32...

C:> GEM Installa Ruby-Postgres installato correttamente Ruby-Postgres-0.7.1.2006.04.06-X86-MSWIN32 1 GEM INSTALLATO INSTALLAZIONE DOCUMENTAZIONE RI per Ruby-Postgres-0.7.1.1.2006.04.04.06-x86-Mswin32 ...Installazione della documentazione RDoc per ruby-postgres-0.7.1.2006.04.06-x86-mswin32...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top