Avant, je n'avais aucun problème avec Ruby, les gemmes et tout ce qui s'y rapportait. Mais après avoir installé X Code Developer Tools et mis à niveau vers Lion, les gemmes ne s'installent pas.
J'obtiens l'erreur suivante pour chaque gemme. Voici le message pour sqlite à titre d'exemple:
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby extconf.rb
mkmf.rb can't find header files for Ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/Ruby/ruby.h
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.4 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out
Qu'est ce qui ne s'est pas bien passé? Comment le réparer?
J'ai dû installer les outils de ligne de commande dans la dernière version Xcode (4.3.1) et
Sudo gem install Rails
travaillé comme un charme.
Pour installer les outils de ligne de commande, accédez à Préférences Xcode> Téléchargements ou utilisez la commande suivante dans le terminal (thx @ Purell ):
xcode-select --install
J'utilise Mavericks et Ruby 2.0.0 et j'ai également eu cette erreur (mkmf.rb ne trouve pas les fichiers d'en-tête) lors de l'installation des gemmes. J'ai résolu ce problème en créant des liens symboliques dans Terminal.
#First install developer tools again:
xcode-select --install
#Create symbolic link to Ruby include (updated for 10.9)
Sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/Ruby-2.0.0 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/include
#Create symbolic link to config.h (updated for 10.9)
Sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/2.0/Headers/Ruby/config.h /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/Ruby-2.0.0/Ruby/config.h
J'ai rencontré le même problème en essayant d'installer Rails sur mon Lion. Voilà comment je pourrais le résoudre.
Installer rvm
$ curl https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
Installer osx-gcc-installer
https://github.com/kennethreitz/osx-gcc-installer
Nouvelle version installée de Ruby
rvm install 1.9.3
Tapé à la commande suivante pour afficher les exigences
rvm requirements
Pour utiliser un RVM installé Ruby par défaut, au lieu du Ruby système:
rvm system ; rvm gemset export system.gems ; rvm 1.9.3 ; rvm gemset import system.gems # migrate your gems rvm alias create default 1.9.3
Rails installés:
Sudo gem install Rails
Mon Mac est maintenant lu pour Rails !! YAY!!
Lors de l'installation de Rails j'ai eu l'erreur:
ne peut pas trouver les fichiers d'en-tête pour Ruby à /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/Ruby/ruby.h
Comme j'avais déjà installé Xcode, je devais simplement installer les outils de ligne de commande pour résoudre ce problème
Pas une solution directe à votre problème, mais je suggère d'utiliser rvm pour installer de nouveaux rubis et gemmes. Cela devrai prendre soin de ça.
Vous devez avoir installé XCode, il inclut Ruby.h ainsi que d'autres fichiers importants nécessaires pour compiler d'autres gemmes natives.
J'ai juste oublié de l'exécuter avec la commande Sudo
.
Sudo gem install sqlite3
ne pas:
gem install sqlite3
Après une mise à jour du système d'exploitation, assurez-vous d'accepter la licence X-Code même si vous avez déjà utilisé des outils de ligne de commande. Ce n'est qu'alors que certains fichiers d'en-tête seront disponibles. Pour accepter la licence, vous devez exécuter X-Code une fois.
Mise à jour vers la dernière version de xcode, qui a résolu le problème pour moi. Assurez-vous que xcodebuild se trouve sur votre chemin.
l'exécution de xcodebuild -version dans une fenêtre de terminal devrait produire 4.2.1 (4.x au moins).
Bonjour, je suis désolé, je ne peux pas tester cette réponse, mais je suggère de modifier les chemins de recherche par défaut dans votre bashrc et extconf.rb car les fichiers de la bibliothèque semblent avoir été déplacés dans Lion.
(P.S. s'il veut travailler avec la version 1.8 par défaut, rvm serait un tracas inutile)