¿Por qué no puedo instalar la gema SQLite?
-
05-07-2019 - |
Pregunta
Intento instalar la gema SQLite en una caja Linux Fedora 9 con Ruby 1.8.6, Rails 2.2.2, gem 1.3 y sqlite-3.5.9.Aquí está el comando que estoy ejecutando y sus resultados:
sudo gem install sqlite3-ruby
Building native extensions. This could take a while...
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb install sqlite3-ruby
can't find header files for ruby.
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out
gem_make.out
simplemente repite lo que ya fue enviado a la consola.¿Cómo puedo instalar esta joya?
Solución
SQLite RubyGem no es en realidad un RubíGema, es un "CGem", OIA está escrito en C.Esto significa que debe compilarse y vincularse al intérprete de Ruby cuando lo instale y para poder realizar eso necesita los archivos de encabezado C para el intérprete Ruby.
Si compila Ruby usted mismo, esos archivos de encabezado se instalarán automáticamente; sin embargo, en los sistemas RedHat-ish, dichos archivos de encabezado generalmente se empaquetan en un paquete separado, llamado <whatever>-dev
.Entonces, en este caso necesitarás instalar el ruby-dev
paquete y posiblemente el libsqlite3-dev
(Ubuntu) o sqlite-devel
Paquete (Fedora) también.
Sin embargo, quizás sea mejor que simplemente instales el paquete preempaquetado de tu sistema operativo. libsqlite3-ruby
paquete, de esa manera todas las dependencias se satisfacen automáticamente.
(Nota:Todos los nombres de paquetes extraídos de la nada pueden ser diferentes en su sistema).
Otros consejos
Probablemente necesites el paquete de desarrollo ruby. Para Ubuntu, debe instalar ruby1.8-dev, que incluye los archivos de encabezado ruby. Un rápido google dice que el paquete yum es ruby-devel. así que ejecuta esto:
sudo yum install ruby-devel
Enfrenté un problema al instalar la gema sqlite3-ruby en mi caja fedora 13. Se solucionó después de sudo yum install sqlite-devel
Cuando tuve ese problema:
gem install sqlite3 -v '1.3.9'
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
Para mí funcionó, instalando el " libsqlite3-dev " con:
apt-get install libsqlite3-dev
sudo apt-get install ruby-dev
Me lo arregló.
En Ubuntu 9 y 10 intente:
sudo apt-get install ruby-dev
sudo apt-get install sqlite3-dev
Luego ejecuta
gem install sqlite3
Ejecute lo siguiente para el sistema operativo Fedora:
yum install rubygem-sqlite3
¿Tiene todo el código fuente requerido para construir sqlite3-ruby? Gem está intentando compilar un código C y no puede encontrar los encabezados. Probablemente pueda usar un rpm de fedora para sqlite3-ruby (no uso fedora, pero estoy seguro de que existe) si prefiere renunciar a la compilación. Personalmente para cosas de rubí, prefiero usar gema en lugar de un sistema de empaque de distribución.
No estoy muy familiarizado con Fedora, pero en Ubuntu cuando instalas paquetes tienes apt-get y tienes que instalar build-essentials que incluye gcc y otras herramientas de compilación para C.Yo diría que ese podría ser su problema, y usted debe investigar cómo se puede instalar usando RPM o apt-get en Fedora.
Solucioné el problema en mi OLPC (Fedora 9) instalando 'gcc' de manera bastante extraña. Parece que debería haber sido uno de esos paquetes de desarrollo, pero no.
Además, con respecto a los otros paquetes, el sufijo es " -devel " ;, no " -dev " ;, así que asegúrese de obtener los que terminan correctamente: < !> quot; ruby-devel " ;, " sqlite-devel " ...
Una vez que lo haya instalado, si obtiene errores acerca de que sus gemas son demasiado viejas " < 1.3.1 & Quot; cuando intenta ejecutar varios scripts de rails, por ejemplo: script / server o script / console, google " upgrade_rubygems " para solucionar ese problema ...
HTH ...
Ejecute " sudo yum install sqlite-devel " y luego " gem install sqlite3 " ;. Tuve el mismo problema en mi Fedora 15.
Tuve el mismo problema exacto ... en lugar de gemear las piezas faltantes, usé synaptic en unbuntu.
El paquete de claves para mí fue libsqlite-ruby1.9.1 ... Documenté mi experiencia (para referencia) con este error en: Sqlite3-gem-error-during-bundle- instalar
En Alpine, debe instalar el paquete sqlite-dev
.
Encontré este error al ejecutar bundle install
después de generar una aplicación react-rails en Fedora 29. Pude identificar un paquete de desarrollo adecuado ejecutando dnf search sqlite3
, luego lo instalé dnf install libsqlite3x-devel
. Esto me lo arregló.