no se puede cargar dicho archivo - sqlite3/sqlite3_native (LoadError) en Ruby on Rails

Resuelto Penchala Reddy Audireddy asked hace 11 años • 20 respuestas

Cuando intento configurar la instalación básica y el inicio del servidor usando Rails 4.0.0 en Ruby 2.0.0, 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?

Aceptado

Busque su archivo gemspec sqlite3. Un ejemplo es /usr/local/share/gem/specifications/sqlite3-1.3.7.gemspec

Ventanas: C:\Ruby21\lib\ruby\gems\2.1.0\specifications.

Debes ajustarlo de acuerdo con tu ruta de Rubygem y tu versión de sqlite3. Edite el archivo de arriba y busque la siguiente línea

s.require_paths=["lib"]

cambiarlo a

s.require_paths= ["lib/sqlite3_native"]
Harish Gopalakrishnan avatar Jul 20 '2013 12:07 Harish Gopalakrishnan

Dado que la solicitud de extracción n.° 229 se fusionó, sqlite3 se puede instalar por git:clave. Es posible utilizar sqlite3 fácilmente a través de esta adición en su Gemfile:

gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-ruby"

Esto funciona en RubyInstaller-2.4 y versiones posteriores. Instala automáticamente el paquete pacman requerido mingw-w64-x86_64-sqlite3cuando ejecuta bundler install.

Hay más sugerencias para Rails en Windows en las preguntas frecuentes de RubyInstaller2 .

Lars Kanis avatar Apr 09 '2018 15:04 Lars Kanis

ver: https://stackoverflow.com/a/39136421/6755206

afortunadamente, no es necesario cambiar a Ruby 2.0;
hay una solución para este problema, después de intentarlo infinitamente...

https://github.com/hwding/sqlite3-ruby-win


Pasos

Pre

  • gem uninstall sqlite3 --all

Fuente

  • Descargue la última versión de sqlite3-ruby, https://github.com/sparklemotion/sqlite3-ruby
  • descomprimir el paquete

Construir

  • ejecutar la 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á un directorio llamado 'pkg' generado

Instalar

  • ingrese el directorio 'paquete'
  • gem install --local sqlite3-xxx.gem('xxx' es el código de versión)

Controlar

  • irb
  • require 'sqlite3'
hwding avatar Sep 04 '2016 05:09 hwding