2010-12-15 28 views
6

Estoy probando rvm, e instalé Ruby 1.9.2 y rieles 3 con él. Necesito volver a instalar la gema sqlite3-ruby (ya que rvm mantiene todas las gemas separadas para diferentes versiones de ruby).Rails 3 no instalará la gema sqlite3-ruby con rvm?

El problema es que cuando intento, consigo:

 gem install sqlite3-ruby 
/home/jenny/.rvm/rubies/ruby-1.9.2-p0/bin/gem:4: warning: Insecure world writable dir /home/jenny/.rvm/gems/ruby-1.9.2-p0/bin in PATH, mode 040777 
Building native extensions. This could take a while... 
ERROR: Error installing sqlite3-ruby: 
    ERROR: Failed to build gem native extension. 

/home/jenny/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... yes 
checking for rb_proc_arity()... yes 
checking for sqlite3_initialize()... yes 
checking for sqlite3_next_stmt()... yes 
checking for sqlite3_column_database_name()... yes 
checking for sqlite3_enable_load_extension()... no 
checking for sqlite3_load_extension()... no 
creating Makefile 

make 
gcc -I. -I/home/jenny/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/i686-linux -I/home/jenny/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/backward -I/home/jenny/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1 -I. -DHAVE_RB_PROC_ARITY -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_NEXT_STMT -DHAVE_SQLITE3_COLUMN_DATABASE_NAME -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include -D_FILE_OFFSET_BITS=64 -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -o exception.o -c exception.c 
In file included from ./sqlite3_ruby.h:42, 
       from exception.c:1: 
./backup.h:7: error: expected specifier-qualifier-list before ‘sqlite3_backup’ 
make: *** [exception.o] Error 1 

realmente no estoy muy seguro de qué hacer con él ... He instalado sqlite3-ruby en esta máquina antes (con los carriles 2.3.5) Cuando trato de reinstalar esta gema (usando la configuración del sistema rvm) no se instala en un entorno ruby ​​1.8.7, YA SEA.

¿Rompió rvm la gema? Es la nueva gema simplemente no compatible con mi sistema operativo (estoy ejecutando opensuse Linux)

Editar: Cuando intento volver a instalar (desinstalar que instalar de nuevo) sqlite3-ruby en mi entorno Ruby normal, me sale el mismo error , pero luego ver sqlite3-ruby aparece en mi lista de joya (no estoy seguro si se trata de alguna manera de restaurar desde copia de seguridad, o la instalación a pesar del error)

+0

¿Qué versión de sqlite tiene instalada en su computadora? – bhamby

+1

Cuando escribo "sqlite3 -version" obtengo "3.6.4" – Jenny

+0

Pero cuando escribo "sqlite -version", obtengo "2.8.17" ... confuso – Jenny

Respuesta

4

usted podría intentar

gem install sqlite3-ruby -- --with-sqlite3-dir=/path/to/your/sqlite3 

Y si eso no funciona, puede intentar update your sqlite3, 3.6.4 es bastante antiguo, y creo que las versiones más nuevas de Ruby sqlite tienen problemas con algo tan antiguo.

(Y la razón más probable por la que obtiene respuestas diferentes con las dos es que entre las versiones 2 y 3 fue un cambio importante, la mayoría trata con Unicode, creo, y algunos programas todavía usan 2, no 3.)

+0

Al hacer esa ruta de instalación de gem me da errores nuevos y emocionantes , así que cambié a tratar de actualizar mi sqlite3.Hacerlo a través de yast (el administrador de paquetes de opensuse) fue un fracaso, afirma que una actualización "no se puede proporcionar". Supongo que probaré tu enlace de descarga ... – Jenny

3

Cuando instalé sqlite3 de la fuente se coloca en los archivos de inclusión/usr/local/include

me trataron

gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib 

y finalmente instalado.

0

en ubuntu 9.04 También tuvo que descargar e instalar SQLite desde la fuente

6

Votaría arriba o comentario sobre la respuesta de Brennan, pero no tengo suficientes puntos para hacer eso todavía. Pensé que dejaría esta respuesta en caso de que ayudara a alguien más: he pasado un tiempo en esta ... Tenía Ruby 1.9.1 y Rails 3.0.3 instalados y en funcionamiento, pero decidí cambiarme a RVM. RVM instalado de acuerdo con las instrucciones y los carriles instalarse de nuevo, toda la salsa ... luego trató de agrupar instalar y me encontré con este error con sqlite3:

Building native extensions. This could take a while... 
ERROR: Error installing sqlite3: 
    ERROR: Failed to build gem native extension. 

/Users/Jasonp/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... no 
sqlite3 is missing. Try 'port install sqlite3 +universal' 
or 'yum install sqlite3-devel' and check your shared library search path (the 
location where your sqlite3 shared library is located). 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Sé que tenía SQLite3 trabajando antes en mi configuración anterior, por lo que fue a buscar el dir original. que era usr/local/sqlite3

Intenté usar eso como la ruta --with-sqlite3-dir= pero no funcionó. A continuación, sólo por diversión Traté:

gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib 

y por razones wahtever, que funcionó. Entonces, solo en caso de que alguien

Cuestiones relacionadas