Railsアプリケーションでbundle update
を実行しようとしていますが、次のエラーが発生します:
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>'
何か案は?
私は昨日、これに似た問題に遭遇しました。
私はこれらの手順を使用してそれを解決することができました:
https://github.com/carlhuda/bundler/blob/1-0-stable/ISSUES.md
基本的に、私のバンドルに問題があり、物を片付けて、ゼロから再構築することで解決しました。
手順はここで繰り返されます:
# 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
ただし、出力テキストにメッセージが表示された場合:
最初に開発ツールをインストールする必要があります。
Apple Xcode Developer Tools をインストールしていない可能性があります。確認しましたか? (Mac App Storeで入手できると思います。)
Xcode 5以降の場合:
$ xcode-select --install
コマンドラインツールをインストールします。
Brewからgcc-4.2をインストールしたら、それのシンボリックリンクを作成する必要があります。
ln -s /usr/bin/gcc /usr/bin/gcc-4.2
ご注意ください:
最近Xcodeを更新した場合は、Xcodeを開いて最新の契約に同意するが必要な場合があります。
私は同じ問題を抱えていて、最近Xcode(v6.1)へのアップデートをインストールし、次の手順で解決しました:
念のために実行してみてください
Sudo/usr/bin/gcc
おそらくライセンス契約が表示されるので、それをスクロールして「同意する」と入力し、gemのインストールを再試行してください。
私にとってはgccをインストールしていませんでした。Ubuntuで解決するには:
Sudo apt install build-essential
Xcodeを使用して「コマンドラインツール」をインストールするとうまくいきました。
Xcode 4.5を開いている場合設定>ダウンロード>選択Componentsタブをクリックし、Installの横にあるCommandをクリックしますラインツール。
Xcodeからインストールしましたが、パッケージなしで Appleの開発者向けダウンロードと「コマンドラインツール」を検索 からパッケージをダウンロードすることもできます。
Xcodeのユーザーライセンスを受け入れる必要がありました。
Sudo xcrun ccを実行すると、Xcodeライセンス契約のcliバージョンが表示されます。別のオプションは、Xcode.appを開いてGUIで同意することです。
OSXの更新が原因である可能性があります。
http://blog.tomhennigan.co.uk/post/62238548037/agreeing-to-the-xcode-license-from-the-command
また方法:
export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
bundle update
ffi.h
は${SDKROOT}/usr/include/ffi/ffi.h
にあります。
buntu Trusty LTS 14.04
Rubyアプリで新しいGemバージョンをサポートするには、Rails 2.2.1から2.3.0に切り替える必要がありました。
解決:
rvm get stable
rvm remove 2.3.0
rvm install 2.3.0
bundle install
Mac OSx 10.10.2ヨセミテ
CC=/usr/bin/i686-Apple-darwin11-llvm-gcc-4.2 gem install ffi
そしてそれは-あなたがフックすることができる/usr/bin
に4.2コンパイラがあることを確認してください
ls /usr/bin|grep gcc|grep 4.2
これを行うためにローカルの宝石をすべて消去したり、シンボリックリンクを上書きする必要はありません-これは時間の無駄であり、解決するより多くの問題を引き起こす可能性があります。
brew経由でインストールする必要がある場合は、ビンのパスが異なる場合があります。
brew install Apple-gcc42