no se puede cargar dicho archivo - sqlite3/sqlite3_native (LoadError) en Ruby on Rails
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?
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"]
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-sqlite3
cuando ejecuta bundler install
.
Hay más sugerencias para Rails en Windows en las preguntas frecuentes de RubyInstaller2 .
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'