Mac OSX10.9 Chefインストール失敗 ERROR: Failed to build gem native extension.

Chefのインストールをしたいのだけど、どうやらエラーになっている。

$ ruby -v

ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13]

 

$ gem -v

2.0.14

ruby ,gemはインストールされている状態なので、

$ sudo gem install chef

Password:

Fetching: mixlib-config-2.1.0.gem (100%)

Successfully installed mixlib-config-2.1.0

Fetching: mixlib-cli-1.5.0.gem (100%)

Successfully installed mixlib-cli-1.5.0

Fetching: mixlib-log-1.6.0.gem (100%)

Successfully installed mixlib-log-1.6.0

Fetching: mixlib-authentication-1.3.0.gem (100%)

Successfully installed mixlib-authentication-1.3.0

Fetching: mixlib-shellout-2.0.1.gem (100%)

Successfully installed mixlib-shellout-2.0.1

Fetching: mime-types-2.4.3.gem (100%)

Successfully installed mime-types-2.4.3

Fetching: systemu-2.6.5.gem (100%)

Successfully installed systemu-2.6.5

Fetching: ffi-1.9.8.gem (100%)

と順調にいっているとおもいきや、

Building native extensions.  This could take a while…

ERROR:  Error installing chef:

ERROR: Failed to build gem native extension.

 

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/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

–without-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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/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}/

–with-libffi-config

–without-libffi-config

–with-pkg-config

–without-pkg-config

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do’: The compiler failed to generate an executable file. (RuntimeError)

You have to install development tools first.

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:549:in `block in try_compile’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:502:in `with_werror’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:549:in `try_compile’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:1044:in `block in have_header’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:895:in `block in checking_for’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:340:in `block (2 levels) in postpone’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:310:in `open’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:340:in `block in postpone’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:310:in `open’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:336:in `postpone’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:894:in `checking_for’

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:1043:in `have_header’

from extconf.rb:16:in `<main>’

 

 

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.8 for inspection.

Results logged to /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.8/ext/ffi_c/gem_make.out

デベロップツールを先にインストールしないとダメ?

グーグル先生の指示に従い、下記コマンドにてCommand Line Developer Toolsインストール

$ xcode-select –install

xcode-select: note: install requested for command line developer tools

 

Macintosh HD bash 177×54

インストールをクリックして、画面に従いインストール

インストールが無事完了したので、Xcodeのライセンスに同意

$ sudo xcodebuild -license

ひたすらスペースキーを押して文章を読んで(?)最後に「agree」を入力

 

By typing ‘agree’ you are agreeing to the terms of the software license agreements. Type ‘print’ to print them or anything else to cancel, [agree, print, cancel]  agree

 

You can view the license agreements in Xcode’s About Box, or at /Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf

 

もう一度Chefのインストールに挑戦!

成功!

 

参考ありがとう:

http://kernhack.hatenablog.com/entry/2013/12/21/193927

http://qiita.com/yuku_t/items/30015dba2b6497b80074