2009-04-17 21 views
28

Ho bisogno di installare la gemma JSON per avviare la mia app ma ottengo l'errore qui sotto ogni volta che provo a installare la gem json. Qualcuno mi può aiutare. Sto usando le guide 2.2.2 e gemme 1.3.1.Quando provo sudo gem install json ottengo il seguente errore

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

Fare attenzione montaggio/cambiare il rubino di Apple-installato. A meno che tu non sia sicuro di sapere cosa stai facendo, è meglio installare RVM o rbenv e lasciare che gestisca Ruby in modalità sandbox. –

+2

Se l'installazione degli strumenti da riga di comando xcode non risolve il problema, e 'make' non riesce a trovare' gcc' vedere questa domanda: http://stackoverflow.com/q/12256616/637283 –

+4

Hai installato ruby-dev? – LB40

risposta

15

Ti mancano le intestazioni di sviluppo rubino. Per installare questi su un sistema operativo come Ubuntu si dovrebbe usare:

aptitude install ruby1.8-dev 
+0

Sto usando un mac ... devo ancora installare Ruby-Dev? –

+1

sì, è necessario ruby-dev – Palesz

+5

-1 'aptitude' non è d'aiuto poiché non è installato su Mac OS X. –

4

Le intestazioni rubino non vengono installati con il rubino base di installazione con Mac OS X. Questi possono stati trovati su Mac OS X Disc 2 installando gli strumenti XCode.

Una volta installato, tutto andava bene!

UPDATE Come di almeno OS X 10.7.3 questo non è più un problema, "solo funziona"

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, non è vero. Forse è stato qualcos'altro a far sì che "funzioni solo" per te. – GarlicFries

3

l'installazione di strumenti da riga di comando Xcode ... dovrebbe risolvere questo problema.

2

Un semplice google search rivela questo:

Se si ottiene il non riesce a trovare i file di intestazione per il messaggio di errore rubino quando si cerca di costruire una proroga o una gemma, vuol dire che Ruby non può individuare i propri file header.

I file di intestazione non vengono forniti per impostazione predefinita con Mac OS X, è necessario installare il pacchetto Xcode Tools dopo l'installazione. Puoi trovarlo nella directory Installazioni/Xcode opzionali sul DVD di Leopard.

-1

Ho avuto lo stesso problema.

Ecco le mie avventure (spero possa essere utile):

per risolvere il problema ho fatto molte manipolazioni :-)

Sto usando Fedora Core. Ho risolto in questo modo:

Ho installato rotaie-devel:

sudo yum install rails-devel

riprovò:

sudo gem install rails

ma ho un altro problema:

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

Quindi ho installato GCC:

sudo yum install gcc

provato di nuovo:

sudo gem install rails

Ora ho un altro problema))):

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

Così installato ruby-IRB:

sudo yum install ruby-irb

riprovò:

sudo gem install rails

Successfully installed rails-3.1.3

Questo è tutto))

+0

Hai installato Fedora Core su una macchina Mac OS solo per installare Ruby? Non penso che tu abbia letto bene la domanda. –

2

Si scopre che alcune gemme richiedono alcuni file di intestazione ruby ​​per installare correttamente. Questi file di intestazione non vengono spediti con Lion (OSX 10.7).

Si scopre anche che Xcode 4 (ultima versione) non installa questi file di intestazione. Ho provato questo.

Soluzione - Supponendo che tu sia su Mac OS X (sembra che si basi sull'uscita del terminale). Per farlo funzionare ho installato gcc con alcuni strumenti di sviluppo dalla seguente pagina

Si dovrebbe essere in grado di installare le gemme ora, sia con gem install o bundle install.

Overhead Se siete preoccupati per l'altra roba che arriva, ecco un riassunto.

  • gcc - utile
  • make - utile
  • clang - utile per ObjectiveC
  • strumenti di sviluppo CLI (spurgo, ecc) - utile?
  • DevSDK (header, ecc) - quello che ti serve
13

Se avete questo problema:

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

e si utilizza un Mac con OS X (testato con 10.8.1 Mountain Lion), è necessario scaricare Xcode dal Mac App Store (o da developer.apple.com se si dispone di un account dev - è BTW gratuito ed è possibile scaricare un programma di installazione DMG)

Le ultime versioni di Xcode (I ' m usando Xcode 4.4.1) fare es NON includere strumenti da riga di comando. Ora è necessario installare questo pacchetto aggiuntivo all'interno di Xcode. Una volta fatto, il problema è risolto.

Per fare ciò, apri Xcode, vai su Preferenze> Download> Componenti. Installa "Strumenti a riga di comando". Hai finito. Ora puoi installare la gemma JSON Ruby.

enter image description here

+0

Per ottenere gli strumenti dev della riga di comando ed evitare l'installazione di Xcode: http://stackoverflow.com/a/19532316/637283 –

-1

Ecco la mia soluzione:

rvm gem install json -v=xxx

La mia configurazione:

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

Se si utilizza homebrew, eseguire brew doctor. Potresti scoprire che le librerie gcc richieste per la compilazione sono obsolete e/o mancanti.

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 

Per gli utenti Lion e Mountain Lion, Apple ora fornisce un funzionario Strumenti della riga di comando per il pacchetto Xcode che è possibile installare senza bisogno di installare Xcode per sé! Puoi scaricarlo dal sito degli sviluppatori di Apple https://developer.apple.com/downloads/index.action. Se hai ancora bisogno di gcc-4.2 e usi Homebrew, puoi installarlo usando il pacchetto apple-gcc42 da homebrew/dupes.

18

Con Mavericks, è possibile risolvere il problema installando gli strumenti della riga di comando Xcode dalla riga di comando in questo modo:

xcode-select --install

Update: Non dimenticare di accettare il contratto di licenza dopo l'installazione o l'aggiornamento:

sudo xcodebuild -license

Problemi correlati