¿Cómo instalo sqlite3 para Ruby en Windows?

Siendo realmente nuevo en Ruby / Rails, y después de intentar resolver el problema yo mismo este fin de semana, estoy intentando buscar consejo aquí.

Tengo una configuración completa de Ruby / Apache / Passenger hecha en FreeBSD, y estoy tratando de llevar a cabo la tarea de usar Windows como un entorno de desarrollo Ruby.

Hasta aquí:

  • Ruby está instalado, v2.0.0p0 (2013-02-24) [x64-ming32]
  • Rails está instalado, v.3.2.12
  • Tengo el kit Ruby dev instalado y registrado.
  • Tengo el sqlite3 dll / exe copiado en la carpeta Ruby “bin” (que también está en mi camino usando la consola “Comando de sistema de comandos con Ruby”).
  • Puedo iniciar un servidor de Rails con éxito y continuar con el http://guides.rubyonrails.org/getting_started.html tutorial a 3.3.
  • “> rake db: create” me dice:

    Instale el adaptador sqlite3: gem install activerecord-sqlite3-adapter (sqlite3 no es parte del paquete. Agréguelo a Gemfile).

que no tengo “comprensión” de. Al intentar instalar activerecord-sqlite3-adapter me da un “No se pudo encontrar una joya válida …”

  • “> gem install sqlite3” devuelve:

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

    D:/Development/Ruby200-x64/bin/ruby.exe extconf.rb checking for sqlite3.h... *** extconf.rb failed ***

En este momento estoy atascado en el punto en el que ni siquiera sé en qué estado está mi instalación de Ruby en Windows. Estoy intentando seguir el tutorial principal de Rails y no especifica ninguno de estos problemas (probablemente porque Ruby en Windows parece ser un dolor natural para mucha gente).

¿¡¿Qué me estoy perdiendo?!? Estoy tratando de instalar sqlite3 para Ruby en Windows, parece simple, ¿verdad?

Si hago ">rais db" se presenta el shell SQLite:

SQLite version 3.7.15.2 2013-01-09 11:53:05

Preguntas similares con pasos que no resuelven mi problema: instalar SQLite 3.6 en Windows 7

Aunque la pregunta ha sido respondida, deseo publicar mi investigación para ayudar a otros. Encontré mucha información en línea, pero como soy un novato de Ruby, tuve problemas para seguirlo todo. La respuesta básica proviene de la siguiente publicación https://github.com/luislavena/sqlite3-ruby/issues/82 con instrucciones de “paulwis” sobre cómo instalar sqlite3 para ruby ​​2.0.0-p0 y algunos comentarios sobre https: //github.com/rails/rails/issues/10150 . Asi que aqui esta:

  1. Instalar el Ruby Devkit para su configuración (DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe para mí, ya que utilizo una máquina x64)
  2. Descargue y extraiga el paquete autoconf de Sqlite.org
  3. Ejecute msys.bat (está dentro de la carpeta raíz de devkit de ruby)
  4. cd en la ruta donde descargó la fuente sqlite (por ejemplo: “cd / c / dev / sqlite3” para la ruta “c: \ dev \ sqlite3” si es nuevo en MSYS / MINGW32)
  5. Ejecute “./configure”
  6. Ejecutar “hacer”
  7. Ejecute “make install”
  8. Obtenga la gem sqlite3 de nuevo, esta vez especificando la plataforma y la ruta a los binarios recién comstackdos:

     gem install sqlite3 --platform=ruby -- --with-sqlite3-include=[path\to\sqlite3.h] --with-sqlite3-lib=[path\to\sqlite3.o] 

    Por ejemplo:

     gem install sqlite3 --platform=ruby -- --with-sqlite3-include=/c:/dev/sqlite3/ --with-sqlite3-lib=/c:/dev/sqlite3/.libs/ 

    (de los caminos dados en el paso 4)

  9. Compruebe el archivo Gemfile.lock de su aplicación de Rails y asegúrese de que apunta a la versión correcta de sqlite3. El mío era “sqlite3 (1.3.7-x86-mingw32)” y lo cambiaba manualmente a “sqlite3 (1.3.7-x64-mingw32)”. La eliminación de la plataforma también funciona: “sqlite3 (1.3.7)”.

Espero que esto ayude a alguien.

Pude instalar sqlite3 con ruby2.0.0 en win XP32 con el siguiente comando:

c:\>gem install sqlite3 --platform=ruby -- --with-sqlite3-dir=C:/distr/sqlite --with-sqlite3-include=C:/distr/sqlite

Carpeta C:/distr/sqlite contiene los siguientes archivos

  • shell.c
  • sqlite3.c
  • sqlite3.h
  • sqlite3ext.h
  • sqlite3.def
  • sqlite3.dll

Entonces, básicamente, he sqlite-amalgamation-3071602.zip y sqlite-dll-win32-x86-3071602.zip en C:/distr/sqlite .

AVISO

Aún necesita colocar una copia de sqlite3.dll y sqlite3.def algún lugar de PATH. En mi humilde opinión, es mejor mantener los archivos binarios sqlite3 en la carpeta bin de ruby.

 #!/usr/bin/env sh mkdir c:/sqlite3x86 wget -P c:/sqlite3x86 http://packages.openknapsack.org/sqlite/sqlite-3.7.15.2-x86-windows.tar.lzma cd c:/sqlite3x86 bsdtar --lzma -xf c:/sqlite3x86/sqlite-3.7.15.2-x86-windows.tar.lzma gem install sqlite3 --platform=ruby -- --with-opt-dir=c:/sqlite3x86 cd c:/ rm -rf c:/sqlite3x86 

Pensé que pondría una respuesta, a partir de los comentarios, por el bien de la posteridad. El problema parecía ser que agarré una nueva versión de Ruby / Rails (para Windows) que aún no era compatible con SQLite3.

Bajé a 1.9.x y pude ejecutar todo.

La forma más fácil de configurar Ruby on Rails en una máquina con Windows es mediante el uso de RailsInstaller, que automáticamente instala y configura sqlite3 para usted. Un paso.

http://railsinstaller.org/en

Para Windows, vaya a C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb

y asegúrate

require "sqlite3" lugar de nativo

Obtenga el binario gordo de aquí

https://ci.appveyor.com/project/MSP-Greg/sqlite3-ruby/build/3/job/hhk6ie8gdo545svr/artifacts

y

 gem install c:\path\to\downloaded_gem.gem