Error de instalación de sqlite3-ruby en Ubuntu

257

Tengo el siguiente error durante la instalación de sqlite3-ruby:

Construyendo extensiones nativas. Esto podría tomar un tiempo...
ERROR: Error al instalar sqlite3-ruby:
    ERROR: Error al construir la extensión nativa de gemas.

/usr/bin/ruby1.8 extconf.rb
buscando sqlite3.h ... no
sqlite3.h no se encuentra. Pruebe 'port install sqlite3 + universal' o 'yum install sqlite3-devel'
*** extconf.rb falló ***
No se pudo crear Makefile por alguna razón, probablemente por falta de
bibliotecas y / o encabezados necesarios. Consulte el archivo mkmf.log para obtener más información.
detalles. Es posible que necesite opciones de configuración.

Opciones de configuración proporcionadas:
    --with-opt-dir
    --sin-opt-dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --with-make-prog
    --sin-make-prog
    --srcdir =.
    --curdir
    --ruby = / usr / bin / ruby1.8
    --with-sqlite3-dir
    --without-sqlite3-dir
    --with-sqlite3-include
    --without-sqlite3-include = $ {sqlite3-dir} / include
    --with-sqlite3-lib
    --without-sqlite3-lib = $ {sqlite3-dir} / lib


Los archivos de gemas permanecerán instalados en /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 para su inspección.
Resultados registrados en /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h se encuentra en / usr / include /

sudo gem install sqlite3-ruby --without-sqlite3-include = / usr / include

no funciona

ERROR: al ejecutar gem ... (OptionParser :: InvalidOption)
    opción no válida: --without-sqlite3-include = / usr / include

Ubuntu 10.04

Dmitry
fuente
mismo problema: esto no se responde. sqlite3.h no existe y todos los paquetes anteriores están instalados. ubunut 10.10
rrt
Intente sudo apt-get install build-essential y luego sudo gem install sqlite3-ruby
Dmitry
1
desde entonces ha cambiado a justo sqlite3, nosqlite3-ruby
kelloti
3
Me funcionó en ubuntu 12.04 como sugirió marshluca. sudo apt-get install libsqlite3-dev
panta

Respuestas:

585

Necesita los encabezados de desarrollo SQLite3 para la compilación de la extensión nativa de la gema. Puede instalarlos ejecutando (posiblemente con sudo):

apt-get install libsqlite3-dev
marshluca
fuente
26
Que necesitaba sudo apt-get install libsqlite3-dev. Gracias.
B Seven
66
Trabajado como un encanto. Gracias.
frank.m
Gracias, esto definitivamente no habría sido obvio.
james_womack 01 de
15

Solo necesitas un --allí.

sudo gem install sqlite3-ruby -- --with-sqlite3-include=/usr/include

Eso especifica que la opción no es gema directamente, sino la gema específica.

Kurt
fuente
8

En mi caso no tengo instalados compiladores básicos, así que

sudo apt-get install build-essential

resolvió mi problema, pero para la mayoría de las personas creo que https://stackoverflow.com/a/3649005/417267 es la solución.

Dmitry
fuente
1
Este fue mi problema. Gracias.
j triste
6

Si ejecuta en ubuntu y utiliza RVM para ruby ​​on rails, agregue PRIMERO:

sudo apt-get install libxslt-dev libxml2-dev

O puede verificar con estos comandos:

Este comando preparará para usted dos paquetes: sqllite3 y libsqlite3-dev

sudo apt-get install sqlite3 libsqlite3-dev

-Ahora, instala la gema sqlite

 [sudo] gem install sqlite3-ruby

-usar Ubuntu no necesita sudo.

¡Buena suerte! Nota: estoy usando Ubuntu 10.10 y está funcionando.

anguu
fuente
6

Esto fue simplemente suficiente para que funcione

sudo apt-get install libsqlite3-dev

Gracias a marshluca

Bernard Banta
fuente
4

Intenté TODAS las otras soluciones, ninguna ayudó.

Resultó que también necesitas un paquete de desarrollo para Ruby. Para mí, me ayudó

sudo apt-get install ruby-full

Sin embargo, tiene muchas dependencias desagradables (como emacs, wtf?), Solo

sudo apt-get install ruby1.8-dev

debería estar bien. Después de que esté instalado (y tenga instalados los paquetes sqlite y sqlite-dev)

sudo gem install sqlite3-ruby

Funciona de maravilla.

mhaligowski
fuente
1
Trabajó para mí también. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite
1

Tuve este mismo problema y lo siguiente funcionó para mí:

compile sqlite3 como biblioteca estática, instálela en algún lugar de su directorio de inicio y luego proporcione esa opción para el proceso de instalación de gemas.

Vaya a la página de descarga y tome la fuente. La versión más reciente en este momento es http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf en el archivo o haga lo que normalmente hace para descomprimir; entrar al directorio

./configure --disable-shared --enable-static --prefix = / some / path / in / my / home

compila, instala y cuando estás instalando la gema ...

gem install sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home

EnotionZ
fuente
1

Desde sqlite3-ruby gem no puedo encontrar sqlite3.h en ubuntu :

También necesita instalar gcc, por lo que en total sería:

sudo apt-get install gcc libsqlite3-dev ruby1.8-dev
sudo gem install sqlite3

Aparentemente, obtienes un error incorrecto que apunta a un sqlite3.h perdido cuando el problema real falta gcc.

Jeroen Vijfhuizen
fuente
1

La solución es agregar parámetros --separados configuredegem parámetros.

en vez de

sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include

intente esto, todo en una línea, asegúrese de incluir --después del último gemparámetro y antes de los configureparámetros:

sudo gem install sqlite3 --
--with-sqlite3-lib=/somewhere/local/lib
--with-sqlite3-include=/somewhere/local/include

Esto debería evitar este error:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include
stefanB
fuente
Esto era exactamente lo que necesitaba, ¡muchas gracias a este remitente!
David Loy
0

No --without-sqlite3-include=/usr/include, pero --with-sqlite3-include=/usr/include.

Daniel O'Hara
fuente
Si sqlite3.h realmente falta y no está en / usr / include como dijiste, entonces puedes instalarlo con: sudo apt-get install libsqlite3-dev
Kurt
Ya he hecho esto ... No ayuda. Tengo instalado sqlite3 y libsqlite3-dev.
Dmitry
0

Este es exactamente el mismo problema que tuve hace unas semanas. Descubrí que necesitaba descargar los encabezados / bibliotecas más recientes de la página de descarga de SQLite. Pruébalo, ¡espero que esto ayude!

theGrayFox
fuente
0

Para mí, el problema se resolvió al obtener mkmf, que está en ruby1.8-dev.

sudo apt-get install ruby1.8-dev

Gracias a mentalizado por eso.

autor de ben
fuente
0

Estoy de acuerdo con Danya Vershinin y EnotionZ .

Si no puede usar apt-get:

  1. compile e instale sqlite3 desde las fuentes especificando su propia ruta de "prefijo". Se puede encontrar más información en el archivo README.
  2. Luego pasó esta ruta al instalador sqlite3-ruby (no olvide el "-").
LoganMzz
fuente
0

Tienes una versión rota de RVM. Ubuntu le hace algo a RVM que produce muchos errores, la única forma segura de arreglarlo por ahora es: sudo apt-get --purge remove ruby-rvm sudo rm -rf / usr / share / ruby ​​..., si no ayuda luego reinicie su computadora. instalar RVM: \ curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = enable --auto-dotfiles Si encuentra que necesita algo de mano, eche un vistazo a Instalación de Ruby en Ubuntu 12.04, que da un poco más de explicación

Jack Demin
fuente
0

Olvida todo y haz esto,

correr

yum install ruby-devel sqlite sqlite-devel ruby-rdoc
yum install make gcc
gem install sqlite3-ruby
bundle install

Eso es para rhel, ejecuta lo mismo para ubuntu.

Aakash Parashar
fuente
0

Ninguna de las soluciones mencionadas funcionó para mí, incluso después de instalar ruby2.5-devy libsqlite3-dev. Luego trató de usar en PostgreSqllugar de sqlite. Eso funcionó bien. Para usar en PostgreSqllugar de sqlite, use este comando al crear un railsproyecto.

rails [_VERSION_] new project_name -d postgresql

Si desea usar MySql, use en mysqllugar de postgresql.

rails [_VERSION_] new project_name -d mysql

De lo contrario, puedes probar sin él sqlite.

bundle install --without sqlite
MARYLAND. Khairul Basar
fuente
0

Acabo de bajar a sqlite3-ruby '1.2.2'

nils petersohn
fuente