Pregunta

Actualizar: Consulte esta pregunta de seguimiento: Actualización de Gem en Windows: ¿está rota?


En Windows, cuando hago esto:

gem install sqlite3-ruby

Obtuve el siguiente error:

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

Lo mismo ocurre con la gema hpricot..Creo recordar que estas gemas se instalaron perfectamente en gemas <1.0, pero ahora que estoy en 1.2.0, las cosas se han vuelto feas.

También he probado esto:

gem install sqlite3-ruby --platform Win32

No hace falta decir que esto tampoco funciona (mismo error)

¿Alguien sabe qué está pasando aquí y cómo solucionarlo?


Actualizar: Consulte esta pregunta de seguimiento: Actualización de Gem en Windows: ¿está rota?

¿Fue útil?

Solución

Como sugiere Nathan, esto parece estar relacionado con el hecho de que las últimas versiones de las gemas sqlite3-ruby y hpricot no parecen tener versiones de Windows.Esto es lo que debe hacer cuando se enfrente a esta situación (tenga en cuenta que el nombre de la gema tiene comodín automáticamente, por lo que puede escribir solo SQL y obtener una lista de todas las gemas que comienzan con 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)

Luego puedes elegir la versión que deseas instalar:

gem install sqlite3-ruby -v 1.2.3

Para instalar hpricot con éxito, hice esto:

gem install hpricot -v 0.6

Molesto, hacer un gem update intenta actualizar las gemas a sus últimas versiones defectuosas en Windows.Cuando la rutina de actualización encuentra un error, lo excluye de todo el proceso.Hay una solución (pirata) a este problema. aquí.

Entonces, ¿este problema es un error en las gemas?¿Las gemas no deberían detectar automáticamente la plataforma e instalar la última versión compatible?

Otros consejos

Tuve el mismo problema en Ubuntu, esto me solucionó el problema:

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

¿Es posible que la versión más nueva aún no se haya portado a Win32?Dado que esta gema en particular tiene enlaces al código compilado, requeriría una gema específica de la plataforma.Si fuerzo la instalación de la versión 1.2.3 en lugar de la 1.2.4 actual, la versión específica de la plataforma se instala, pero cuando permito que Gem intente instalar la versión actual, obtengo la versión genérica 1.2.4 (en el archivo Gems). carpeta de la biblioteca, carece del sufijo -x86-mswin32 que las otras carpetas sqlite3-ruby tienen en sus nombres.

Tal vez alguien más pueda responder cómo la gema maneja las gemas específicas de la plataforma.¿Se cargan gemas separadas para cada plataforma y el software de gemas selecciona cuál extraer?

primero de sqlite.org (http://www.sqlite.org/download.html)
descargar ->
Binarios precompilados: sqlite-dll-win32-x86-3071700.zip
y código fuente: sqlite-autoconf-3071700.tar.gz
luego extraer como:

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

última gema de instalación como:

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

¡Buena suerte!

También me encontré con este problema.Vale la pena saber que la diferencia entre 1.2.3 y 1.2.4 no es significativa.Aquí están los 1.2.4.Notas de lanzamiento:

Nombre de la versión:1.2.4

Notas:Esta versión solo actualiza el archivo C generado para reflejar los cambios de compatibilidad que se hicieron en el archivo SWIG.Las construcciones binarias (por ejemplo, Windows) no se ven afectadas y no necesitan actualización.En general, no necesitará esta actualización a menos que esté utilizando una versión de Ruby antes de 1.8.6.(fuente: 1.2.4.Notas de lanzamiento)

¡Espero que ayude a otros!

Tuve el mismo problema en Windows y instalé MinGW.http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/downloady el problema ha desaparecido :-)

C:> GEM Instalar HPRICOT instalado correctamente HPRICOT-0.8.2-X86-MSWIN32 1 GEM instalada Instalación de la documentación RI para HPRICOT-0.8.2-X86-MSWIN32 ...Instalando la documentación de RDoc para hpricot-0.8.2-x86-mswin32...

C:> GEM Instale Ruby-Postgres instalado correctamente Ruby-Postgres-0.7.1.2006.04.06-x86-mswin32 1 GEM instalada Instalación de la documentación de RI para Ruby-Postgres-0.7.1.2006.04.06-x86-mswin32 ...Instalando la documentación de RDoc para ruby-postgres-0.7.1.2006.04.06-x86-mswin32...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top