Ocurrió un error al instalar sqlite3 (1.3.11), y Bundler no puede continuar

6 minutos de lectura

Así que estoy tratando de $ bundle install --without production antes yo $ git push heroku masterpero sigo recibiendo este error

$ bundle install --without production
Fetching gem metadata from https://rubygems.org/............
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies......
Using rake 10.4.2
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.8.3
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.1.8
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.8
Using rack 1.5.5
Using rack-test 0.6.3
Using actionpack 4.1.8
Using mime-types 2.99
Using mail 2.6.3
Using actionmailer 4.1.8
Using activemodel 4.1.8
Using arel 5.0.1.20140414130214
Using activerecord 4.1.8
Using execjs 2.6.0
Using autoprefixer-rails 6.1.2
Using sass 3.2.19
Using bootstrap-sass 3.3.5
Using bundler 1.10.6
Using coffee-script-source 1.10.0
Using coffee-script 2.4.1
Using thor 0.19.1
Using railties 4.1.8
Using coffee-rails 4.0.1
Using hike 1.2.3
Using multi_json 1.11.2
Using jbuilder 2.3.2
Using jquery-rails 3.1.4
Using tilt 1.4.1
Using sprockets 2.12.4
Using sprockets-rails 2.3.3
Using rails 4.1.8
Using rdoc 4.2.0
Using sass-rails 4.0.5
Using sdoc 0.4.1
Installing sqlite3 1.3.11 with native extensions
C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:39: warning: Tempfile#unlink or delete called on open file; ignoring

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    C:/jruby-9.0.0.0/bin/jruby.exe -r ./siteconf20151208-25620-qipdd0.rb extconf.rb
NotImplementedError: C extensions are not supported
    <top> at C:/jruby-9.0.0.0/lib/ruby/stdlib/mkmf.rb:1
  require at org/jruby/RubyKernel.java:940
   (root) at C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
    <top> at extconf.rb:3

extconf failed, exit code 1

Gem files will remain installed in C:/jruby-9.0.0.0/lib/ruby/gems/shared/gems/sqlite3-1.3.11 for inspection.
Results logged to C:/jruby-9.0.0.0/lib/ruby/gems/shared/extensions/universal-java-1.8/2.2.0/sqlite3-1.3.11/gem_make.out
An error occurred while installing sqlite3 (1.3.11), and Bundler cannot
continue.
Make sure that `gem install sqlite3 -v '1.3.11'` succeeds before bundling.

este es mi Gemfile

source 'https://rubygems.org'

gem 'rails', '4.1.8'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'bootstrap-sass'



group :development, :test do
 gem 'sqlite3'
end

group :production do
 gem 'pg'
 gem 'rails_12factor'
end

group :doc do
    gem 'sdoc', require: false
end

lo intenté

gem uninstall sqlite3
gem install sqlite

pero tengo

$ gem install sqlite3
Building native extensions.  This could take a while...
C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:39: warning: Tempfile#unlink or delete called on open file; ignoring
ERROR:  Error installing sqlite3:
        ERROR: Failed to build gem native extension.

    C:/jruby-9.0.0.0/bin/jruby.exe -r ./siteconf20151208-19428-iytd2g.rb extconf.rb
NotImplementedError: C extensions are not supported
    <top> at C:/jruby-9.0.0.0/lib/ruby/stdlib/mkmf.rb:1
  require at org/jruby/RubyKernel.java:940
   (root) at C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
    <top> at extconf.rb:3

extconf failed, exit code 1

Gem files will remain installed in C:/jruby-9.0.0.0/lib/ruby/gems/shared/gems/sqlite3-1.3.11 for inspection.
Results logged to C:/jruby-9.0.0.0/lib/ruby/gems/shared/extensions/universal-java-1.8/2.2.0/sqlite3-1.3.11/gem_make.out

¿Alguien tiene alguna idea de lo que podría estar causando esto?

  • ¿Qué sistema operativo estás usando?

    – Polvo

    9 de diciembre de 2015 a las 6:17

  • aquí está su respuesta: stackoverflow.com/questions/15795942/…

    – matanco

    9 de diciembre de 2015 a las 6:17

  • Estás tratando de usar la gema sqlite nativa con Jruby. Esta respuesta podría ser útil: stackoverflow.com/a/7786796/163640

    – eugen

    9 de diciembre de 2015 a las 6:33

  • Ventanas para Ruby on Rails! Espero que dios siempre te acompañe 🙂

    – Polvo

    9 de diciembre de 2015 a las 6:41

Creo que primero debe instalar sqlite3 y sqlite3-dev.

sudo apt-get install -y sqlite3 libsqlite3-dev

Pruébalo, podría resolver tu problema

  • muchas gracias. Todavía funciona en Ubuntu 18.04 y Rails 6.0.

    – iColdPlayer

    21 de marzo de 2020 a las 17:38

avatar de usuario
Hai Tran

Esto podría ayudar. Tengo el mismo problema. Busqué mucho y lo resolví. Esta es quizás solo la versión de sqlite3.

Deberías hacer esto primero

sudo apt-get install -y sqlite3 libsqlite3-dev

luego abra su Gemfile y cambie la línea de sqlite3 a

gem 'sqlite3', '~> 1.3', '>= 1.3.11'

entonces corre

bundle install

  • gem 'sqlite3', '~> 1.3', '>= 1.3.11' Esta parte no me funciono pero esta sudo apt-get install -y sqlite3 libsqlite3-dev trabajado como un encanto. Gracias.

    – Yonela Nuba

    6 ago a las 7:44

avatar de usuario
joel g

Como dijo benjamin, debe instalar la base de datos sqlite3 antes de poder instalar la gema sqlite3. Parece que está en Windows, así que intente seguir las instrucciones que se enumeran aquí:

¿Cómo instalo sqlite3 para Ruby en Windows?

Como referencia, aquí está la respuesta aceptada en ese hilo, por el usuario Williams:

  1. Instale Ruby Devkit para su configuración (DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe para mí, ya que uso 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 Ruby Devkit)

  4. cd en la ruta donde descargó la fuente de sqlite (por ejemplo: “cd /c/dev/sqlite3” para la ruta “c:\dev\sqlite3” si es nuevo en MSYS/MINGW32)

  5. Ejecute “./configurar”

  6. Ejecutar “hacer”

  7. Ejecute “hacer instalación”

  8. Obtenga la gema sqlite3 nuevamente, 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 las rutas dadas en el paso 4)

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

¡Buena suerte!

Esto instalará los paquetes relacionados con sqlite requeridos por Rails en Sombrero rojo y Centos:

sudo yum install sqlite sqlite-devel

Tienes que instalar el sqlite3 base de datos para su sistema operativo, preferiblemente a través de la herramienta que proporciona su sistema operativo. Después de hacer esto, intente instalar la gema nuevamente. Lo más probable es que tenga que resolver errores similares mediante el mismo procedimiento.

  • Publiqué arriba los resultados que obtuve de $ gem install sqlite3. Lo que publiqué arriba es el error que tengo al instalar sqlite3.

    – Frank Aaron Seager

    9 dic 2015 a las 18:16

  • En caso de que el enlace en la respuesta de Joel esté desactualizado, solo busque en Google la instalación + sqlite3 + su_versión_de_os. La instalación de otras gemas puede fallar con mensajes de error similares, así que repita el procedimiento si es necesario.

    – benjamín

    10 de diciembre de 2015 a las 11:41


avatar de usuario
Omar

Esto funciona para mí.

sudo apt-get install libsqlite3-dev

  • Publiqué arriba los resultados que obtuve de $ gem install sqlite3. Lo que publiqué arriba es el error que tengo al instalar sqlite3.

    – Frank Aaron Seager

    9 dic 2015 a las 18:16

  • En caso de que el enlace en la respuesta de Joel esté desactualizado, solo busque en Google la instalación + sqlite3 + su_versión_de_os. La instalación de otras gemas puede fallar con mensajes de error similares, así que repita el procedimiento si es necesario.

    – benjamín

    10 de diciembre de 2015 a las 11:41


¿Ha sido útil esta solución?