2009-04-17 7 views
28

J'ai besoin d'installer la gemme JSON pour démarrer mon application mais j'obtiens l'erreur ci-dessous chaque fois que j'essaye d'installer la gemme json. Quelqu'un peut m'aider. J'utilise les rails 2.2.2 et les gemmes 1.3.1.Lorsque j'essaye sudo gem installer json je reçois l'erreur suivante

Arions-macbook-pro:.ssh arion$ sudo gem install json 
Password: 
Sorry, try again. 
Password: 
Building native extensions. This could take a while... 
ERROR: Error installing json: 
    ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install json 
can't find header files for ruby. 


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/json-1.1.4 for inspection. 
Results logged to /Library/Ruby/Gems/1.8/gems/json-1.1.4/ext/json/ext/parser/gem_make.out 
+0

installerons attention/changer le Ruby Apple installé. À moins que vous ne soyez sûr de savoir ce que vous faites, il est préférable d'installer RVM ou rbenv, et de le laisser gérer le Ruby en bac à sable. –

+2

Si l'installation d'outils de ligne de commande xcode ne résout pas le problème, et 'make' ne trouve pas' gcc' voir cette question: http://stackoverflow.com/q/12256616/637283 –

+4

Avez-vous installé ruby-dev? – LB40

Répondre

15

Il vous manque les en-têtes de développement ruby. Pour installer sur un système d'exploitation comme ubuntu vous devez utiliser:

aptitude install ruby1.8-dev 
+0

Im utilisant un mac ... dois-je encore juste besoin d'installer ruby-dev? –

+1

oui, vous avez besoin de ruby-dev – Palesz

+5

-1 'aptitude' n'aidera pas car il n'est pas installé sur Mac OS X. –

4

Les en-têtes de rubis ne viennent pas installés avec le rubis de base installée avec Mac OS X. Ceux-ci peuvent été trouvés sous Mac OS X disque d'installation 2 en installant les outils XCode.

Une fois installé, tout allait bien!

MISE À JOUR Comme d'au moins OS X 10.7.3 ce n'est plus un problème, il « fonctionne »

MacBook-Pro:tmp$ sudo gem install json 
Password: 
Building native extensions. This could take a while... 
Successfully installed json-1.6.5 
1 gem installed 
Installing ri documentation for json-1.6.5... 
Installing RDoc documentation for json-1.6.5... 
MacBook-Pro:tmp$ uname -a 
+10

Um, pas vrai. Peut-être que c'était quelque chose d'autre qui a causé que cela "fonctionne" pour vous. – GarlicFries

3

Installation des outils de ligne de commande Xcode ... devrait résoudre ce problème.

2

Un google search simple, révèle ceci:

Si vous obtenez le ne peut pas trouver les fichiers d'en-tête pour le message d'erreur Ruby lors d'une tentative de construire une extension ou un bijou, cela signifie que Ruby ne peut pas localiser ses fichiers d'en-tête.

Les fichiers d'en-tête ne sont pas fournis par défaut avec Mac OS X, vous devez installer le package Xcode Tools après l'installation. Vous pouvez le trouver dans le répertoire Optional Installations/Xcode Tools sur le DVD Leopard.

-1

J'ai eu le même problème.

Voici mes aventures (espérons que ce sera utile):

Pour résoudre ce problème, je l'ai fait beaucoup de manipulations :-)

J'utilise Fedora Core. Je l'ai fixé cette façon:

J'ai installé des rails-devel:

sudo yum install rails-devel

a essayé à nouveau:

sudo gem install rails

mais j'ai un autre problème:

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

/usr/bin/ruby extconf.rb creating Makefile 

make gcc -I. -I/usr/lib/ruby/1.8/i386-linux -I/usr/lib/ruby/1.8/i386-linux -I. -D_FILE_OFFSET_BITS=64 -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fno-strict-aliasing -fPIC -O3 -Wall -c parser.c make: gcc: Command not found

J'ai donc installé GCC:

sudo yum install gcc

essayé à nouveau:

sudo gem install rails

Maintenant, j'ai un autre problème))):

Installing ri documentation for json-1.6.3... ERROR: While generating documentation for json-1.6.3 ... MESSAGE: no such file to load -- irb/slex ... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/json-1.6.3/ri --title JSON implemention for Ruby --main README.rdoc ext/json/ext ext lib README.rdoc --title json-1.6.3 Documentation --quiet

donc installé rubis irb:

sudo yum install ruby-irb

a essayé à nouveau:

sudo gem install rails

Successfully installed rails-3.1.3

C'est tout)))

+0

Vous avez installé Fedora Core sur une boîte Mac OS juste pour installer Ruby? Je ne pense pas que vous ayez bien lu la question. –

2

Il s'avère que certaines gemmes nécessitent certains fichiers d'en-tête Ruby pour une installation correcte. Ces fichiers d'en-tête ne sont pas livré avec Lion (OSX 10.7).

Il s'avère également que Xcode 4 (dernière version) n'installe pas non plus ces fichiers d'en-tête. J'ai essayé ça.

Solution - En supposant que vous utilisez Mac OS X (vous semblez être basé sur la sortie du terminal). Pour le faire fonctionner, j'ai installé gcc avec quelques outils de développement de la page suivante

Vous devriez pouvoir installer les gemmes maintenant, soit avec gem install ou bundle install.

Frais généraux Si vous êtes préoccupé par l'autre indésirable cela vient avec, voici un résumé.

  • gcc - utile
  • make - utile
  • clang - utile pour
  • ObjectiveC
  • Outils développeur CLI (de purge, etc) - utile?
  • DevSDK (en-têtes, etc.) - ce que vous devez
13

Si vous avez ce problème:

ERROR: Error installing json: 
ERROR: Failed to build gem native extension. 

et que vous utilisez un Mac avec OS X (testé avec 10.8.1 Montagne Lion), vous devez télécharger Xcode depuis le Mac App Store (ou depuis developer.apple.com si vous avez un compte de développement - c'est BTW gratuit et vous pouvez télécharger un programme d'installation DMG)

Les dernières versions de Xcode (I ' m en utilisant Xcode 4.4.1) faire N'inclut PAS les outils de ligne de commande. Vous devez maintenant installer ce paquet supplémentaire dans Xcode. Une fois cela fait, votre problème est résolu. Pour cela, ouvrez Xcode, allez dans Préférences> Téléchargements> Composants. Installez "Outils de ligne de commande". Vous avez terminé. Vous pouvez maintenant installer la gemme json Ruby.

enter image description here

+0

Pour obtenir des outils de développement de ligne de commande et éviter d'installer Xcode: http://stackoverflow.com/a/19532316/637283 –

-1

Voici ma solution:

rvm gem install json -v=xxx

Ma configuration:

 
OSX Lion 
ruby-1.9.3 
rvm 
gcc-4.2 #=> honestly haven't seen that it's been used 
0

Si vous utilisez homebrew, exécutez brew doctor. Vous pourriez découvrir que les bibliothèques gcc requises pour la compilation sont obsolètes et/ou manquantes.

Warning: No compiler found in /usr/bin! 
Warning: Your Xcode (4.2) is outdated 

checking for gcc... /Developer/usr/bin/llvm-gcc 
checking whether the C compiler works... no 
configure: error: in `/private/tmp/freexl-apNF/freexl-1.0.0d': 
configure: error: C compiler cannot create executables 

Pour les utilisateurs Lion et Mountain Lion, Apple propose désormais un outils de ligne de commande officielle pour package Xcode que vous pouvez installer sans avoir besoin d'installer Xcode lui-même! Vous pouvez le télécharger à partir du site de développeur d'Apple https://developer.apple.com/downloads/index.action. Si vous avez encore besoin de gcc-4.2 et que vous utilisez Homebrew, vous pouvez l'installer en utilisant le paquetage apple-gcc42 de homebrew/dupes.

18

Avec Mavericks, vous pouvez résoudre ce problème en installant les outils de commande Xcode ligne à partir de la ligne de commande comme ceci:

xcode-select --install

Mise à jour: Ne pas oublier d'accepter le contrat de licence après l'installation ou mise à jour:

sudo xcodebuild -license

Questions connexes