2012-05-13 7 views
22

sto cercando di fare un bundle update relativa alla mia domanda rotaie ma ottengo il seguente errore:aggiornamento Bundle non riesce a ffi

Installing ffi (1.0.11) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks! 
/Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 

     /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb 
checking for ffi.h... *** 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. 

Provided configuration options: 
    --with-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/bin/ruby 
    --with-ffi_c-dir 
    --without-ffi_c-dir 
    --with-ffi_c-include 
    --without-ffi_c-include=${ffi_c-dir}/include 
    --with-ffi_c-lib 
    --without-ffi_c-lib=${ffi_c-dir}/lib 
    --with-libffi-config 
    --without-libffi-config 
    --with-pkg-config 
    --without-pkg-config 
/Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:931:in `block in have_header' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:280:in `postpone' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:930:in `have_header' 
    from extconf.rb:9:in `<main>' 


Gem files will remain installed in /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/ffi-1.0.11 for inspection. 
Results logged to /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/ffi-1.0.11/ext/ffi_c/gem_make.out 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:530:in `block in build_extensions' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:505:in `each' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:505:in `build_extensions' 
    from /Users/Kyle/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:180:in `install' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/source.rb:90:in `block in install' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/rubygems_integration.rb:82:in `preserve_paths' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/source.rb:89:in `install' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/installer.rb:73:in `block in install_gem_from_spec' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/rubygems_integration.rb:97:in `with_build_args' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/installer.rb:72:in `install_gem_from_spec' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/installer.rb:56:in `block in run' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/installer.rb:55:in `run' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/installer.rb:12:in `install' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/cli.rb:271:in `update' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/vendor/thor/task.rb:22:in `run' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/vendor/thor.rb:263:in `dispatch' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/lib/bundler/vendor/thor/base.rb:386:in `start' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/gems/bundler-1.1.0/bin/bundle:13:in `<top (required)>' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/bin/bundle:19:in `load' 
    from /Users/Kyle/.rvm/gems/ruby-1.9.3-p125/bin/bundle:19:in `<main>' 

Tutte le idee?

risposta

26

Mi sono imbattuto in un problema simile a questo ieri.

sono stato in grado di risolvere utilizzando questi passaggi:

https://github.com/carlhuda/bundler/blob/1-0-stable/ISSUES.md

In sostanza, c'era un problema con il mio fagotto e di compensazione le cose e ricostruire le cose da zero risolto esso.

Le fasi sono ripetute qui:

# remove user-specific gems and git repos 
rm -rf ~/.bundle/ ~/.gem/ 

# remove system-wide git repos and git checkouts 
rm -rf $GEM_HOME/bundler/ $GEM_HOME/cache/bundler/ 

# remove project-specific settings and git repos 
rm -rf .bundle/ 

# remove project-specific cached .gem files 
rm -rf vendor/cache/ 

# remove the saved resolve of the Gemfile 
rm -rf Gemfile.lock 

# try to install one more time 
bundle install 

Anche se, dato il messaggio nel testo di output:

You have to install development tools first.

Questo mi fa pensare solo che non si sia installata l'Apple Xcode Developer Tools. Hai controllato? (Credo che siano disponibili nel Mac App Store.)

+2

Ho installato Xcode ma sembra che bundler non riesca a trovarlo per qualche motivo ... Ho provato i vostri suggerimenti e installato https://github.com/kennethreitz/osx-gcc-installer e ora tutto funziona bene Grazie per l'aiuto! Ho intenzione di darti la taglia ma SO mi sta facendo aspettare 23 ore. Lo darò a te allora :) –

+0

Grazie! Molto apprezzato! –

+0

grazie! Così carino! – Madao

10

Una volta installato gcc-4.2 da birra, è necessario creare link simbolico di esso:

ln -s /usr/bin/gcc /usr/bin/gcc-4.2 
+0

Questo è ciò che alla fine ha fatto per me installare la gemma eventmachine. Avevo provato ad aggiornare rvm, reinstallare ruby, assicurandomi che gli strumenti da riga di comando fossero in XCode (4.6) e molti altri elementi. Ho provato a impostare CC =/usr/local/bin/gcc-4.2 e senza quello, ma sembra che finisca per compilare con llvm-gcc da ora "/usr/bin/[email protected] ->/usr/bin/gcc "e"/usr/bin/gcc @ -> llvm-gcc-4.2 ". Sono totalmente confuso sul perché, ma ha funzionato. Speriamo che non rovini niente altro come brew installs ... – mmrobins

+0

Per quanto mi riguarda, ho semplicemente aggiornato il mio XCode e gli strumenti da riga di comando seguiti dal tuo suggerimento di link simbolico a /usr/bin/gcc-4.2. Grazie! Non l'avrei capito per un po '. –

+0

Ho provato a installare gli strumenti da riga di comando XCode ed eseguire 'gem install ffi' senza successo. Dopo aver aggiunto il collegamento simbolico come suggerito da @kiero ffi-1.9.3 installato bene. Grazie! – Lenart

4

Installazione "riga di comando Strumenti" tramite Xcode ha fatto il trucco

Se si dispone di Xcode 4.5 aperti Preferenze>Download> Selezionare Componenti scheda e fare clic su Installa accanto al Command Line Tools.

Anche se ho installato da Xcode, è possibile anche scaricare il pacchetto senza da Apple's Developer Downloads and searching for "Command Line Tools".

10

Per Xcode 5 e versioni successive:

$ xcode-select --install 

per installare gli strumenti di riga di comando.

+0

Questo ha aiutato! Grazie! –

5

Solo nel caso tenta di eseguire

sudo/usr/bin/gcc

Probabilmente vedrete contratto di licenza, quindi scorrere thgough esso, tipo "d'accordo" e provare a installare di nuovo gioiello.

+0

ti rendi conto di quanti anni ha questa domanda? E ha una risposta accettata –

+3

questo in realtà ha risolto il problema per me, quindi grazie per quella risposta in ritardo. – rubiii

+1

Questo ha funzionato per me. Grazie uomo! Tutte le soluzioni di cui sopra non lo risolvono, ma questo ha fatto. Bel lavoro! –

5

Si prega di notare:

Se si è recentemente aggiornato Xcode, si può solo bisogno di aprire Xcode e accettare l'ultimo accordo.

Ho avuto lo stesso problema e recentemente ho installato un aggiornamento per Xcode (v6.1) e risolto con questi passaggi:

  1. aperta Xcode
  2. accettare nuovo accordo
  3. replica fascio aggiornamento
0

Mac OSX 10.10.2 Yosemite

CC=/usr/bin/i686-apple-darwin11-llvm-gcc-4.2 gem install ffi 

e questo è -check che hai il compilatore 4.2 in /usr/bin che tu c un gancio nella

ls /usr/bin|grep gcc|grep 4.2 

Non hai di spazzare via tutti i tuoi gioielli locali o ignorare i link simbolici per fare questo - è uno spreco di tempo e probabilmente creare più problemi poi non ne risolva.

si prega di notare, il vostro percorso bin potrebbe essere diverso se si ha bisogno di installare tramite birra

brew install apple-gcc42 
0

anche il metodo:

export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk 
bundle update 

ffi.h deve essere trovata in ${SDKROOT}/usr/include/ffi/ffi.h.

0

Ubuntu LTS Trusty 14,04

desiderato per il passaggio dal rubino 2.2.1 a 2.3.0 per supportare le versioni più recenti di gemme in applicazione Rails.

Soluzione:

  1. rvm get stable
  2. rvm remove 2.3.0
  3. rvm install 2.3.0
  4. bundle install
1

Per quanto mi riguarda ho solo non ho avuto gcc installato, risolvere in Ubuntu:

sudo apt install build-essential