2010-12-15 53 views
6

J'essaie RVM, et installé ruby ​​1.9.2 et rails 3 avec elle. J'ai besoin de réinstaller le gem sqlite3-ruby (puisque rvm garde toutes les gemmes séparées pour différentes versions de ruby).Rails 3 n'installera pas sqlite3-ruby gem avec rvm?

Le problème est, lorsque je tente, je reçois:

 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 

Je ne suis pas tout à fait sûr que faire de ... J'ai installé sqlite3-ruby sur cette machine avant (avec rails 2.3.5) Lorsque j'essaie de réinstaller cette gemme (en utilisant les paramètres du système RVM), il ne s'installe pas dans un environnement de ruby ​​1.8.7, SOIT.

Est-ce que rvm a cassé la gemme? Est-ce que la nouvelle gem n'est pas compatible avec mon système d'exploitation (j'utilise opensuse linux)

Éditer: Lorsque j'essaye de réinstaller (désinstaller plutôt que d'installer à nouveau) sqlite3-ruby dans mon environnement ruby, j'ai la même erreur , mais voir sqlite3-ruby figurant dans ma liste de pierres précieuses (pas sûr si elle est la restauration d'une certaine manière de la sauvegarde ou l'installation malgré l'erreur)

+0

Quelle version de sqlite avez-vous installé sur votre ordinateur? – bhamby

+1

Quand je tape "sqlite3 -version" je reçois "3.6.4" – Jenny

+0

Mais quand je tape "sqlite -version", j'obtiens "2.8.17" ... confus – Jenny

Répondre

4

Vous pouvez essayer

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

et si cela ne fonctionne pas, vous pouvez essayer de update your sqlite3, 3.6.4 est plutôt vieux, et je pense que les nouvelles versions de Ruby sqlite ont des problèmes avec quelque chose de si vieux.

(Et la raison la plus probable que vous obteniez des réponses différentes avec les deux est qu'entre les versions 2 et 3 était un changement majeur - traitant principalement avec Unicode, je crois - et certains programmes utilisent toujours 2, pas 3.)

+0

Faire ce chemin d'installation gem me procure de nouvelles erreurs passionnantes , donc je suis passé à essayer de mettre à jour mon sqlite3.Faire cela via yast (le gestionnaire de paquets de opensuse) était un échec, il prétend qu'une mise à jour "ne peut pas être fournie". Je suppose que je vais essayer votre lien de téléchargement ... – Jenny

3

Lorsque j'ai installé sqlite3 de la source, il a placé les fichiers inclus dans/usr/local/include

J'ai essayé

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

et il a finalement installé.

0

sur ubuntu 9.04 je devais également télécharger et installer SQLite de la source

6

Je voterais ou des commentaires sur la réponse de Brennan, mais je n'ai pas assez de points pour faire encore. Je me suis dit que je laisserais cette réponse au cas où cela aiderait quelqu'un d'autre: j'ai passé un moment sur celui-ci ... J'avais Ruby 1.9.1 et Rails 3.0.3 installés et fonctionnaient mais j'ai décidé de passer à RVM. Installé RVM selon les instructions, puis de nouveau installés rails, tout sauce ... puis essayé de regrouper l'installation et a couru dans cette erreur avec 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. 

Je sais que je devais travailler SQLite3 avant dans ma config précédente, donc je est allé trouver le répertoire original. qui était usr/local/sqlite3

J'ai essayé d'utiliser cela comme le chemin --with-sqlite3-dir= mais ne fonctionnait pas. Puis juste pour le plaisir j'ai essayé:

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

et pour la raison wahtever, cela a fonctionné. Donc, juste au cas où quelqu'un