the - no se puede cargar dicho archivo-sqlite3/sqlite3_native(LoadError) en ruby on rails
sqlite linux (8)
Encuentra tu archivo sqlite3 gemspec. Un ejemplo es /usr/local/share/gem/specifications/sqlite3-1.3.7.gemspec
Windows: C:/Ruby21/lib/ruby/gems/2.1.0/specifications
.
Debe ajustar de acuerdo con su ruta Rubygem y la versión sqlite3. Edite el archivo de arriba y busque la siguiente línea
s.require_paths=["lib"]
cambiarlo a
s.require_paths= ["lib/sqlite3_native"]
Cuando intento configurar la instalación básica y el inicio del servidor con Rails 4.0.0 en Ruby 2.0.0, me aparece el siguiente mensaje de error.
/usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `require'': cannot load such file -- sqlite3/sqlite3_native (LoadError)
from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `rescue in <top (required)>''
from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:2:in `<top (required)>''
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require''
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require''
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each''
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require''
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each''
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require''
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:in `require''
from /home/penchal/new/site/config/application.rb:7:in `<top (required)>''
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require''
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>''
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap''
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>''
from bin/rails:4:in `require''
from bin/rails:4:in `<main>''
¿Cómo puedo evitar este mensaje de error y continuar?
Esta es la única solución que funcionó para mí, derivada de esta publicación de GitHub :
- Obtenga la versión autoconf de fuentes sqlite3 desde https://www.sqlite.org/download.html .
- Inicie el shell MSYS.
- En la ubicación no empaquetada para su sqlite3, configure la versión estática solamente para evitar mantener DLL en PATH:
./configure --disable-shared
. - Cree e instálelo:
make install DESTDIR=/c/dev/ruby/tmp
. Puedes cambiar el directorio. - Abra el símbolo del sistema de Windows y ejecute
gem uninstall sqlite3 --all
para eliminar todas las gemas sqlite3 existentes. - De nuevo en el símbolo del sistema de Windows, compile e instale sqlite3 gem:
gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:/dev/ruby/tmp/usr/local/include --with-sqlite3-lib=C:/dev/ruby/tmp/usr/local/lib
. Esos directorios include y lib pueden ser diferentes, así que, primero, verifique.
Estoy usando Ruby versión 2.5.1 y Rails versión 5.2.0 en Windows 10.
Esto me pasó a mí también. Resultó que originalmente había instalado SQLite 1.3.10, pero luego copié algunas gemas del proyecto de screencasts tutoriales de Rails y enlisté SQLite 1.3.9. Luego recibí el mismo error que tú. Lo cambié a 1.3.10 y funcionó.
(Esto está en Windows 7. Estaba ejecutando el tutorial de screencast en Cloud9 IDE).
Existe una solicitud de extracción abierta # 229 para incluir gemspec, de modo que sqlite3 se pueda instalar por git:
clave. Hasta que se fusione, es posible usar sqlite3 fácilmente a través de esta adición en su Gemfile
:
gem ''sqlite3'', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"
Esto funciona en RubyInstaller-2.4 y más reciente. Instala automáticamente el paquete pacman requerido mingw-w64-x86_64-sqlite3
cuando ejecuta la bundler install
.
Hay más sugerencias para Rails en Windows en las Preguntas frecuentes de RubyInstaller2 .
La desinstalación y reinstalación de la gema sqlite3 funcionó para mí.
gem uninstall sqlite3
bundle
No compilar las fuentes o descargar bibliotecas pre compiladas resolverá este problema, créanme, lo intenté todo, el problema está en otra parte. Así es como funciona en Windows:
bundle update sqlite3
Es probable que obtenga otro error similar después de este con respecto a nokogiri, corríjalo con el comando:
bundle update nokogiri
¡Disfruta tu aplicación Ruby!
Si la respuesta principal no funciona, una solución que descubrí es simplemente ir a su Gemfile y agregar el número de versión 1.3.11 (en lugar de 1.3.9) justo después de sqlite3. Entonces, la línea en tu Gemfile debería leer:
# Use sqlite3 as the database for Active Record
gem ''sqlite3'', ''1.3.11''
ver: https://.com/a/39136421/6755206
afortunadamente, no tienes que cambiar a ruby 2.0
hay una solución a este problema, después de intentarlo sin fin ...
https://github.com/hwding/sqlite3-ruby-win
Pasos
Pre
-
gem uninstall sqlite3 --all
Fuente
- Descargue el último sqlite3-ruby, https://github.com/sparklemotion/sqlite3-ruby
- descomprimir el paquete
Construir
- ejecutar línea de comandos en el directorio extraído
- asegúrese de tener su compilador de C instalado y agregado a PATH
-
gem install bundler
-
bundle install
-
rake native gem
- encontrarás un directorio llamado ''pkg'' generado
Instalar
- enter dir ''pkg''
-
gem install --local sqlite3-xxx.gem
(''xxx'' es el código de versión)
Comprobar
-
irb
-
require ''sqlite3''