J'essaie de faire un bundle update
sur mon application Rails mais j'obtiens l'erreur suivante:
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>'
Des idées?
J'ai rencontré un problème similaire à celui d'hier.
J'ai été capable de le résoudre en utilisant ces étapes:
https://github.com/carlhuda/bundler/blob/1-0-stable/ISSUES.md
Essentiellement, il y avait un problème avec mon paquet, le nettoyage et la reconstruction d'éléments à partir de zéro l'ont résolu.
Les étapes sont répétées ici:
# 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
Bien que, compte tenu du message dans le texte de sortie:
Vous devez d'abord installer les outils de développement.
Cela me fait penser que vous n’avez peut-être pas installé le Outils de développement Apple Xcode . Avez-vous vérifié cela? (Je pense qu'ils sont disponibles dans le Mac App Store.)
Pour Xcode 5 et versions ultérieures:
$ xcode-select --install
installer les outils de ligne de commande.
Une fois installé gcc-4.2 à partir de brew, vous devez en créer un lien symbolique:
ln -s /usr/bin/gcc /usr/bin/gcc-4.2
Notez s'il vous plaît:
Si vous avez récemment mis à jour Xcode, vous devrez peut-être simplement ouvrir Xcode et accepter le dernier accord .
J'ai eu le même problème et j'avais récemment installé une mise à jour de Xcode (v6.1) et je l'ai résolu en procédant comme suit:
Juste au cas où essayer de courir
Sudo/usr/bin/gcc
Vous verrez probablement un accord de licence, alors parcourez-le, tapez "consent" et essayez à nouveau d'installer Gem.
L'installation d '"Outils de ligne de commande" via Xcode a fonctionné.
Si vous avez Xcode 4.5 ouvert Préférences > Téléchargements > Sélectionnez Composants onglet et cliquez sur Installer à côté de Outils de ligne de commande .
Bien que j'aie installé à partir de Xcode, vous pouvez également télécharger le package sans celui-ci depuis Téléchargements pour les développeurs Apple et rechercher "Outils de ligne de commande" .
Pour moi, je n'ai tout simplement pas installé gcc, résolvez dans Ubuntu par:
Sudo apt install build-essential
Je devais accepter la licence utilisateur Xcode:
L'exécution de Sudo xcrun cc devrait faire apparaître la version CLI du contrat de licence Xcode . Une autre option consiste à ouvrir Xcode.app et à vous mettre d’accord sur Dans l’interface graphique.
Peut-être causé par la mise à jour d'OSX.
http://blog.tomhennigan.co.uk/post/62238548037/agreeing-to-the-xcode-license-from-the-command
Aussi méthode:
export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
bundle update
ffi.h
se trouve dans ${SDKROOT}/usr/include/ffi/ffi.h
.
Ubuntu Trusty LTS 14.04
Nécessaire pour passer de Ruby 2.2.1 à 2.3.0 afin de prendre en charge les nouvelles versions de gem dans l'application Rails.
Solution:
rvm get stable
rvm remove 2.3.0
rvm install 2.3.0
bundle install
Mac OSx 10.10.2 yosemite
CC=/usr/bin/i686-Apple-darwin11-llvm-gcc-4.2 gem install ffi
et thats it -check que vous avez le compilateur 4.2 dans /usr/bin
que vous pouvez accrocher
ls /usr/bin|grep gcc|grep 4.2
Vous ne devez pas effacer toutes vos gemmes locales ou remplacer les liens symboliques pour le faire - c'est une perte de temps et va probablement créer plus de problèmes, puis il en résout.
veuillez noter que votre chemin de bac peut être différent si vous avez besoin d'installer via brassage
brew install Apple-gcc42