windows - microsoft - visual studio installer
gema sqlite3-ruby: no se pudo construir la extensión nativa de la gema (6)
También encontré 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 realizaron en el archivo SWIG. Las compilaciones binarias (p. Ej., Windows) no se ven afectadas y no necesitan actualización. En general, no necesitará esta actualización a menos que esté usando una versión de Ruby anterior a la 1.8.6. (fuente: 1.2.4 notas de la versión )
Espero que ayude a los demás!
Actualización: Mira esta pregunta de seguimiento: actualización de gemas en Windows: ¿está roto?
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 sucede con la gema hpricot . Parece que recuerdo estas gemas bien instaladas en <1.0 gemas, pero ahora estoy en 1.2.0, las cosas se han vuelto complicadas.
También he intentado esto:
gem install sqlite3-ruby --platform Win32
No hace falta decir que esto tampoco funciona (el mismo error)
¿Alguien sabe lo que está pasando aquí y cómo solucionarlo?
Actualización: Mira esta pregunta de seguimiento: actualización de gemas en Windows: ¿está roto?
¿Es posible que la versión más reciente aún no haya sido portada a Win32? Dado que esta gema en particular tiene enlaces al código compilado, requeriría una gema específica de la plataforma. Si forzo la instalación de la versión 1.2.3 en lugar de la actual 1.2.4, la versión específica de la plataforma se instala, pero cuando le permito a Gema intentar instalar la versión actual, obtengo la versión genérica 1.2.4 (en las gemas) 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 gema maneja las gemas específicas de la plataforma. ¿Se cargan gemas separadas para cada plataforma y el software de gemas selecciona cuál para desplegar?
Tuve el mismo problema en Ubuntu, esto me solucionó el problema:
http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00339.html
Tuve el mismo problema en Windows y tengo instalado MinGW http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/download y el problema ha ido :-)
C:> gem install hpricot Instalado exitosamente hpricot-0.8.2-x86-mswin32 1 gem instalado Instalando la documentación ri para hpricot-0.8.2-x86-mswin32 ... Instalando la documentación RDoc para hpricot-0.8.2-x86-mswin32. ..
C:> joya instalar ruby-postgres Instalado correctamente ruby-postgres-0.7.1.2006.04.06-x86-mswin32 1 joya instalada Instalar la documentación de ri para ruby-postgres-0.7.1.2006.04.06-x86-mswin32 ... Instalar la documentación de RDoc para ruby-postgres-0.7.1.2006.04.06-x86-mswin32 ...
primero desde sqlite.org ( http://www.sqlite.org/download.html )
descargar ->
Binarios sqlite-dll-win32-x86-3071700.zip
: sqlite-dll-win32-x86-3071700.zip
y código fuente: sqlite-autoconf-3071700.tar.gz
luego extrae como:
-include
--sqlite3.h
--sqlite3ext.h
-lib
--shell.c
--sqlite3.c
--sqlite3.def
--sqlite3.dll
última instalación gema como:
gem install sqlite3 --platform=ruby -- --with-sqlite3-include=path/to/include
--with-sqlite3-lib=path/to/lib --no-ri --no-rdoc
¡Buena suerte!
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 enfrenta a esta situación (tenga en cuenta que el nombre de la gema es comodín automáticamente, por lo que puede escribir simplemente 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 puede elegir la versión que desea instalar:
gem install sqlite3-ruby -v 1.2.3
Para instalar con éxito hpricot, hice esto:
gem install hpricot -v 0.6
Curiosamente, haciendo una gem update
intenta actualizar las gemas a sus últimas versiones rotas en Windows. Cuando la rutina de actualización encuentra un error, lo desvía de todo el proceso. Aquí hay una solución (hacky) para este problema.
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?