Estoy tratando de instalar la gema sqlite3-ruby (versión 1.3.4) en mi cuenta (CentOS en hosting compartido, así que necesito instalar esto sin root) y la versión de sqlite instalado no es lo suficientemente nuevo para las versiones más recientes de sqlite3-ruby, así que tengo que compilar las bibliotecas en mi cuenta. La versión de sqlite que estoy usando es 1.7.0 porque descubrí que había problemas con las versiones más recientes.Error al instalar la gema sqlite3 a través del paquete
he ido por delante y hecho esto ya - He descargado sqlite-3.7.0.tar.gz e instalado de la siguiente manera:
./configure –prefix=$HOME
make && make install
luego fue a mis carriles 3 y corrieron aplicación lo siguiente:
bundle config build.sqlite3-ruby “--with-sqlite3-include=$HOME/include --with-sqlite3-lib=$HOME/lib”
continuación:
bundle install --path vendor/bundle
Sin embargo, me sale el siguiente paquete y mi falla totalmente insta a ll:
Installing sqlite3 (1.3.4) with native extensions /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:533:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/usr/bin/ruby extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... no
checking for sqlite3_initialize()... no
checking for sqlite3_backup_init()... no
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile
make
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -fPIC -g -O2 -fPIC -c sqlite3.c
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -fPIC -g -O2 -fPIC -c exception.c
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -fPIC -g -O2 -fPIC -c backup.c
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -fPIC -g -O2 -fPIC -c database.c
database.c: In function 'initialize':
database.c:47: error: 'SQLITE_OPEN_READWRITE' undeclared (first use in this function)
database.c:47: error: (Each undeclared identifier is reported only once
database.c:47: error: for each function it appears in.)
database.c:47: error: 'SQLITE_OPEN_CREATE' undeclared (first use in this function)
database.c:72: error: 'SQLITE_OPEN_READONLY' undeclared (first use in this function)
database.c: In function 'set_sqlite3_func_result':
database.c:278: error: 'sqlite3_int64' undeclared (first use in this function)
make: *** [database.o] Error 1
¿Alguna idea? Esto solía funcionar, pero con las versiones más recientes de sqlite3-ruby parece que ya no se usa.
Aquí hay algo de información adicional:
rails -v
Rails 3.0.9
gem -v
1.7.2
.bash_profile:
PATH=$HOME/bin:$PATH
GEM_HOME=$HOME/gems
GEM_PATH=$HOME/gems
export LD_LIBRARY_PATH=$HOME/lib
export USERNAME BASH_ENV PATH GEM_HOME GEM_PATH
which sqlite3
/home/striketh/bin/sqlite3
Editar:
que siguió adelante y cambió de sqlite3-ruby a Sqlite3 en mi Gemfile y encontré lo siguiente:
bundle config build.sqlite3 “--with-sqlite3-include=$HOME/include --with-sqlite3-lib=$HOME/lib --with-sqlite3-dir=$HOME”
Este error mensaje me consiguió:
make
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_BACKUP_INIT -I/home/striketh”/include -fPIC -g -O2 -fPIC -c sqlite3.c
In file included from ./sqlite3_ruby.h:42,
from sqlite3.c:1:
./backup.h:7: error: expected specifier-qualifier-list before 'sqlite3_backup'
make: *** [sqlite3.o] Error 1
¿Alguna otra idea?
reconstrucción sqlite3 con homebrew o macports. – s84
@Codeglot ¿En CentOS? Buena suerte con eso :). –
@Striketh Además de sqlite3, también debe tener instaladas algunas bibliotecas de desarrollo sqlite3, desafortunadamente no sé exactamente cuáles. en Debian es libsqlite3-dev y libsqlite3-0. –