Problème mise à jour sqlite3-ruby

Bonjour,
j’ai suivi les instructions trouvées sur la page :
http://developer.apple.com/tools/developonrailsleopard.html

Je précise que je suis un débutant et que c’était ma première
utilisation du terminal…

J’ai suivi cette procédure :
sudo gem update --system
sudo gem install rails
sudo gem update rake
sudo gem update sqlite3-ruby

et j’ai eu les mêmes problèmes que Tom :
http://www.tomschlenkhoff.com/2008/04/ruby-gem-updates-on-leopard-10.html#trackback

J’ai suivi ses conseils, mais j’obtiens ça :

sudo /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
update --system
Password:
Updating RubyGems
Nothing to update
Faisons-connaissance:~ bertrandhue$ sudo
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
install rails
Bulk updating Gem source index for: http://gems.rubyforge.org/
Successfully installed rails-2.1.0
1 gem installed
Faisons-connaissance:~ bertrandhue$ sudo
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
update rake
Updating installed gems
Nothing to update
Faisons-connaissance:~ bertrandhue$ sudo
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
update sqlite3-ruby
Updating installed gems
Updating sqlite3-ruby
Building native extensions. This could take a while…
ERROR: While executing gem … (Gem::Installer::ExtensionBuildError)
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
extconf.rb update sqlite3-ruby
can’t find header files for ruby.

Gem files will remain installed in
/Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.2.2 for inspection.
Results logged to
/Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.2.2/ext/sqlite3_api/gem_make.out

Quelqu’un peut m’aider ? Merci d’être le plus basique possible, car suis
vraiment un débutant.

Merci :slight_smile:

A priori tu as un problème avec ton installation de ruby,
Ton système n’arrive pas a trouver les header de ruby et ça l’empêche
donc de mettre a jour une gem

Je suis toi je réinstalle ruby en suivant par exemple ce tutorial

Aurélien Bottazini
http://www.mycashgarden.com

Le 17 juin 2008 12:54, Aurélien Bottazini a écrit :

A priori tu as un problème avec ton installation de ruby,
Ton système n’arrive pas a trouver les header de ruby et ça l’empêche donc
de mettre a jour une gem

Il ne trouve pas les headers de SQLite pas ceux de Ruby !

Je suis toi je réinstalle ruby en suivant par exemple ce tutorial
Dan Benjamin

Non, non ! Pour moi, c’est FAUX ! Sauf avis contraire, Bertrand n’a pas
de souci avec son installation de ruby.

Bertrand, essaie en spécifiant où trouver SQLite :

sudo
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
update sqlite3-ruby – --with-sqlite-include=A_COMPLETER
–with-sqlite-lib=A_COMPLETER

J’ai Tiger pas Leopard, donc je ne sais pas où se trouve SQLite sur Leopard.
Normalement, ça devrait être installé. Les headers sont dans /usr/include,
/usr/local/include, /opt/local/include… chais pas, faut chercher. Au
pire,
tu peux installer SQLite par les MacPorts.

Si vraiment ça ne marche pas, alors peut-être qu’on peut se dire
qu’il y a un problème avec ton installation de Ruby, pas avant.

– Jean-François.


http://twitter.com/underflow_

Merci pour ces précisions. Je n’ai pas encore réussi à trouver la
solution. Ce que je ne comprends, c’est qu’avec ce que j’ai fait
ci-dessus c’est dans le dossier /Library/Ruby/Gems/1.8/gems que soient
allées s’installer les dernières versions de rails, de rake, etc. et non
dans le dossier
/System/Library/Frameworks/Ruby-frameworks/Versions/1.8/user/bin/

Je ne sais pas à quoi ressemble un header :frowning:
Les deux seuls endroits où j’ai du sqlite3, c’est dans
/Library/Ruby/Gems/1.8/gems où j’ai sqlite3-ruby-1.2.2 et dans
/System/Library/Frameworks/Ruby-frameworks/Versions/1.8/user/lib/ruby/gems/1.8/gems
où j’ai sqlite3-ruby-1.2.1

Cela peut-il un problème de copier le dossier sqlite3-ruby-1.2.2 dans le
même dossier que la version 1.2.1 ?

Merci

J’ai fais un écart de langage ce ne sont pas les header de ruby ce
sont les header de sql lite pour ruby.
Je pars me couper un bras en excuse.

Je conseille quand même la réinstallation de ruby. Je ne suis pas
particulièrement fan de l’installation par défaut de ruby avec
Leopard. J’ai eu pas mal de problème lors du switch de tiger vers
Lepoard avec la version de MACOS qui m’avais un peut tout cassé.

Aurélien Bottazini
http://www.mycashgarden.com

Hello,

Disclaimer: ce post est entièrement certifié non testé et sans
certitude, je n’ai jamais utilisé MacOS.

1- Vu ce que tu dis en dessous, es-tu sûr de bien avoir installé sqlite3
? “sqlite3-ruby” va permettre à ruby de communiquer avec le système de
base de données sqlite3, mais il ne fait pas tout, il faut avoir
préalablement installé sqlite3. Pour ce faire, tu peux suivre ce qui est
dit ici : http://wiki.rubyonrails.com/rails/pages/HowtoUseSQLite à la
section MacOS…

2- Pour les headers sqlite comme ruby, ils viennent généralement sous
Linux dans des paquets “-dev” ou “-devel” ou “-devtruc”, mais je ne sais
pas si le(s) gestionnaire(s) de paquets sous MacOS sui(ven)t cette
convention. Voir (3). Ca ressemble à un sqlite.h ou sqlite3.h
logiquement. Les fichiers “.h” sont caractéristiques de “headers” de
programmes écrits en C (Java utilise aussi des fichiers comparables je
crois). Je doute qu’ils se trouvent dans un sous-répertoire de gems
ruby, ils devraient être à côté de ton programme sqlite installé comme
dit en (1).

3- Certifié sans troll, je cherche juste à comprendre : OSX est un OS
moderne, je ne peux pas croire que quand on a un souci, la solution
canonique c’est de tout faire sauter et de réinstaller, qui plus est en
re-compilant les sources. Le débat des mails précédents a failli me
faire tomber de ma chaise, surtout pour des conseils donnés à un
débutant… Et puis, Bertrand, si c’est ta première utilisation de la
ligne de commande je te déconseille de te lancer dans des compilations
d’entrée de jeu. Ce n’est pas super compliqué en soi mais ça demande
d’être un peu habitué à passer des commandes sans faire d’erreur, Ã
chercher et trouver l’aide correcte sur le net en cas de souci, etc. Il
y a certainement des solutions un peu plus simples (peut-être en ligne
de commande, certes, mais pas en repartant des sources des programmes et
des make/make install/bidouillages de librairies).

Bon courage en tout cas, en espérant t’avoir éclairé un peu :slight_smile:
Cdt,


Jean-Baptiste

Bertrand F. a écrit :

Ca paraît toujours simple dans les tutoriaux : vous faîtes ceci, vous
faîtes cela et hop vous obtenez ça ! Malheureusement, c’est loin d’être
toujours le cas.

Les tutoriaux qui expliquent vraiment les tenants et aboutissants de
chaque opération sont en effet bcp trop rares. C’est dommage parce que
ça les rends presque “universel” : on comprenant bien chaque étape, on
peut l’adapter à son besoin, sa config etc…

Mais je sais également que c’est bcp plus facile à dire qu’à faire ! (-:

gUI

Merci Jean-Baptiste d’avoir eu la gentillesse de te mettre au niveau
débutant.

Oui, petit à petit je découvre des choses. J’avoue que je ne m’étais pas
posé la question de savoir si sqlite3 était bien installé. Je pensais
que tout venait ensemble (ruby, rails, rake et sqlite3 préinstallés sur
MacOS X Leopard).

J’ai trouvé un sqlite3.h dans
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/

et j’ai trouvé un dossier sqlite3 avec dedans libtclsqlite3.dylib dans
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/

Ca paraît toujours simple dans les tutoriaux : vous faîtes ceci, vous
faîtes cela et hop vous obtenez ça ! Malheureusement, c’est loin d’être
toujours le cas.

Le 18 juin 2008 00:55, Jean-Baptiste BARTH a écrit :

1- Vu ce que tu dis en dessous, es-tu sûr de bien avoir installé sqlite3
?

SQLite3 est normalement déjà installé sur Leopard.

2- Pour les headers sqlite comme ruby, ils viennent généralement sous
Linux dans des paquets “-dev” ou “-devel” ou “-devtruc”, mais je ne sais
pas si le(s) gestionnaire(s) de paquets sous MacOS sui(ven)t cette
convention.

Il n’y a pas de gestionnaire de paquets Apple. Il y a des alternatives
pour installer des logiciels libres (Fink, MacPorts). On doit par
exemple pouvoir installer SQLite3 depuis MacPorts, mais ici pour
le moment, je n’en vois pas l’intérêt.

Voir (3). Ca ressemble à un sqlite.h ou sqlite3.h
logiquement. Les fichiers “.h” sont caractéristiques de “headers” de
programmes écrits en C (Java utilise aussi des fichiers comparables je
crois). Je doute qu’ils se trouvent dans un sous-répertoire de gems
ruby, ils devraient être à côté de ton programme sqlite installé comme
dit en (1).

Les headers sont dans les répertoires include, les binaires dans les
répertoires bin, les libs dans lib/ …
sqlite3.h devrait être dans /usr/include par exemple (il faudrait
qu’un utilisateur de Leopard confirme)

3- Certifié sans troll, je cherche juste à comprendre : OSX est un OS
moderne, je ne peux pas croire que quand on a un souci, la solution
canonique c’est de tout faire sauter et de réinstaller,

C’est pourtant la manière canonique de Windows, non ? (mode troll)

qui plus est en re-compilant les sources. Le débat des mails
précédents a failli me faire tomber de ma chaise, surtout pour des
conseils donnés à un débutant

Je n’ai pas du tout demander à recompiler/réinstaller Ruby.

Et puis, Bertrand, si c’est ta première utilisation de la
ligne de commande je te déconseille de te lancer dans des
compilations d’entrée de jeu. Ce n’est pas super compliqué en soi
mais ça demande d’être un peu habitué à passer des commandes
sans faire d’erreur, à
chercher et trouver l’aide correcte sur le net en cas de souci, etc. Il
y a certainement des solutions un peu plus simples (peut-être en ligne
de commande, certes, mais pas en repartant des sources des programmes et
des make/make install/bidouillages de librairies).

Cela dit, si à un moment il voudra installer un gem basé sur une extension
en C, il faudra bien qu’il s’y familiarise un peu.

Pour suivre le tutoriel Apple, pour le moment il n’en a pas besoin àmha.

– Jean-François.


ça dépend
http://twitter.com/underflow_

je confirme pour Leopard :
/usr/bin/sqlite3
/usr/include/sqlite3.h
/usr/include/sqlite3ext.h
/usr/lib/libsqlite3.0.8.6.dylib
/usr/lib/libsqlite3.0.dylib
/usr/lib/libsqlite3.dylib
/usr/lib/sqlite3
/usr/lib/sqlite3/libtclsqlite3.dylib
/usr/lib/sqlite3/pkgIndex.tcl

sur une installation par défaut, du moins sans avoir touché à SQLite3.

Le 18 juin 2008 00:18, Bertrand F. a écrit :

/Library/Ruby/Gems/1.8/gems où j’ai sqlite3-ruby-1.2.2 et dans
/System/Library/Frameworks/Ruby-frameworks/Versions/1.8/user/lib/ruby/gems/1.8/gems
où j’ai sqlite3-ruby-1.2.1

Cela peut-il un problème de copier le dossier sqlite3-ruby-1.2.2 dans le
même dossier que la version 1.2.1 ?

Normalement avec Leopard, SQLite3 est déjà
pré-installé.Avec ce que tu dis, les bindings Ruby pour SQLite3 sont déjà
pré-installés. Tu as la version 1.2.1 et non la 1.2.2, je ne crois
pas que ce soit la fin du monde si tu n’as pas la dernière version.

Pour Rails, autant avoir la dernière version ok. Mais là, comme
l’installation de sqlite3-ruby nécessite une compilation, on
peut s’en passer. Il suffit de vérifier que Rails marche avec
le binding Ruby SQLite3 existant.

D’ailleurs un :

ruby -rubygems -e “require ‘sqlite3’”

ne devrait pas afficher d’erreur.

En résumé, tu peux a priori passer l’étape “sudo gem update sqlite3-ruby”
du tutoriel.

– Jean-François.


http://twitter.com/underflow_

Salut,

je vais peut-être dire une connerie, mais tu as bien installé les
outils de dev (Xcode…)

Greg

Le 18 juin 2008 13:07, Bertrand F. [email protected] a
écrit :

Oui :slight_smile:

C’est sans doute pour ça que j’ai trouvé des choses dans /Developer/…

Le problème, c’est qu’il y a des choses un peu partout, alors qu’à part
installer le pack developpeur du DVD de Leopard et ouvrir le Terminal
pour la mise à jour expliquée, je n’ai rien fait d’autre…

Jean-François Trân wrote:

D’ailleurs un :

ruby -rubygems -e “require ‘sqlite3’”

ne devrait pas afficher d’erreur.

En r�sum�, tu peux a priori passer l’�tape “sudo gem update sqlite3-ruby”
du tutoriel.

J’ai tapé la ligne que tu m’indiques dans le Terminal et ça ne renvoie
aucun message d’erreur :
Last login: Wed Jun 18 12:55:42 on ttys000
Faisons-connaissance:~ bertrandhue$ ruby -rubygems -e “require
‘sqlite3’”
Faisons-connaissance:~ bertrandhue$

J’en conclue que ça doit être bon…

Je vais donc passer à l’étape suivante du tutoriel en croisant les
doigts. Avec plus d’expérience, peut-être finirai-je par comprendre ce
qui m’est arrivé ci-dessus :slight_smile:

Merci à Tous, car chacun m’a aidé à progresser.