ruby on rails - sqlite3_native - ¿Cómo instalo sqlite3 para Ruby en Windows?
kernel_require rb 32 in require '': cannot load such file-- sqlite3 sqlite3_native loaderror (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:
- 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)
- Descargue y extraiga el paquete autoconf de Sqlite.org
- Ejecute msys.bat (está dentro de la carpeta raíz de devkit de ruby)
- 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)
- Ejecute "./configure"
- Ejecutar "hacer"
- Ejecute "make install"
Obtenga la gema sqlite3 de nuevo, esta vez especificando la plataforma y la ruta a los binarios recién compilados:
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)
- Compruebe el archivo Gemfile.lock de su aplicación de rieles 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.
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 rieles 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
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.
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
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
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.
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