2010-08-11 6 views
3

J'ai installé la nouvelle version de SQLite3 (3.7.0.1) sur mon macbook (OS X 10.5) mais 'sqlite3 --version' me donne le plus ancien version que j'avais sur mon système:Après une nouvelle installation, l'ancienne version de SQLite3 persiste (OS X)

$ sqlite3 --version 
3.4.0 

Je suppose que je me attendais à cette version à écraser, mais cela ne semble pas être le cas. Quelqu'un peut-il m'indiquer? Je l'apprécie vraiment, en ce moment je suis en train de commencer avec Rails mais j'avais reçu cette erreur:

$ sudo gem install sqlite3-ruby 
Password: 
Building native extensions. This could take a while... 
ERROR: Error installing sqlite3-ruby: 
    ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
checking for #include <sqlite3.h> 
... yes 
checking for sqlite3_libversion_number() in -lsqlite3... yes 
checking for rb_proc_arity()... no 
checking for sqlite3_initialize()... no 
sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade! 
*** 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. 

Étrangement, bien que depuis l'installation de la nouvelle version de sqlite3 cette erreur a disparu (dans d'autres mots sqlite3-ruby a été installé avec succès) - mais sqlite3 pointe toujours vers 3.4.0, j'ai vérifié les répertoires dans mon $ PATH et ils contiennent seulement 3.7.0.1

Merci d'avance pour toute aide.

Répondre

0

Avez-vous essayé de dire au système d'exploitation d'utiliser le nouveau en tapant hash sqlite3? Parfois, un système d'exploitation se souvient de la version d'origine et ne sait pas se rafraîchir et hash va le piquer dans les yeux.

Sinon, vous devrez peut-être indiquer à la gemme de regarder au bon endroit. Vérifiez dans ces options dans le programme d'installation:

 
    --with-sqlite3-dir 
    --with-sqlite3-include 
    --with-sqlite3-lib 
+0

sqlite3 et sqlite3-ruby ont tous deux installés avec succès, dans le cas où il a trouvé la sqlite3 correcte de sqlite3-ruby, donc je suis fait avec l'installation - Je me demande pourquoi la ancienne installation n'a pas été écrasée ou supprimée? En outre je me demande où c'est exactement? (J'ai vérifié tous les endroits sur mon $ PATH ... il doit être quelque part? Y a-t-il une commande à la: 'sqlite3 --show-me-where-the-hell-it-is?) – Dave

+0

En général un programme d'installation ne doit pas remplacer un package installé par le système. Il y a généralement de bonnes raisons pour lesquelles ils l'ont installé là où ils l'ont fait, comme les processus du système qui s'attendent à ce qu'il soit là, et à une certaine version. Les paquets * écraseront * si vous les forcer à, mais cela peut conduire à une machine qui ne fonctionne pas correctement. L'installation dans/usr/bin est risquée./usr/bin/local ou autre .../local/paths est assez sûr, et, en modifiant votre chemin, vous contrôlez si la version .../local/est trouvée en premier. J'espère que cela pourra aider. –

0

Je rencontre également le même problème sur mon serveur CentOS. J'ai trouvé cette solution efficace pour moi. J'espère que ça aide! http://amitava1.blogspot.com/2010/08/ruby-on-rails-on-centos-55-with.html

processus principal:

 
$ wget http://www.sqlite.org/sqlite-amalgamation-3.7.0.1.tar.gz 
$ tar xvzf sqlite-amalgamation-3.7.0.1.tar.gz 
$ cd sqlite-3.7.0.1 
$ ./configure --prefix=/opt/local/sqlite-3.7.0.1 
$ make 
$ sudo make install 
$ sudo /opt/ruby-enterprise-1.8.7-2010.02/bin/gem install sqlite3-ruby -- --with-sqlite3-dir=/opt/local/sqlite-3.7.0.1 
Building native extensions. This could take a while... 
Successfully installed sqlite3-ruby-1.3.1 
1 gem installed 
Questions connexes