Mac OS 10.11 El Captain 環境での bundle install で nio4r libv8 therubyracer mysql2 がエラーになる
環境 |
---|
Mac OS 10.11 El Captain |
ruby 2.1.0 |
bundle install --path vendor/bundle
で以下のエラー
An error occurred while installing nio4r (1.0.0), and Bundler cannot continue.
Build Issue on OS X 10.11 and Ruby 2.2.2
Gemfile.lock を見ると listen の gem に依存していることが分かったので、以下を実行してみる
bundle update listen
するとこんなエラーが出る。
mac$ bundle update listen Fetching gem metadata from https://rubygems.org/....... Fetching version metadata from https://rubygems.org/... Fetching dependency metadata from https://rubygems.org/.. Resolving dependencies..... Using rake 10.4.2 ・ ・ ・ Using kgio 2.9.2 Installing libv8 3.16.14.3 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 ../src/cached-powers.cc:136:18: error: unused variable 'kCachedPowersLength' [-Werror,-Wunused-const-variable] static const int kCachedPowersLength = ARRAY_SIZE(kCachedPowers); ^ 1 error generated.
libv8 と therubyracer は環境への依存性が強いらしく、OSに適したものを使わないとエラーになるらしいので、環境が変わるとエラーになりやすいらしい。インストールする環境に合わせる為に、 update に libv8 を加える。
bundle update listen libv8
Yosemiteにしてからbundle installが通らなくなった原因と対応
他にも、こんなエラー
mac$ bundle update listen Fetching gem metadata from https://rubygems.org/....... Fetching version metadata from https://rubygems.org/... Fetching dependency metadata from https://rubygems.org/.. Resolving dependencies..... Using rake 10.4.2 ・ ・ ・ Installing mysql2 0.3.15 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /Users/xxxxxxx/.rbenv/versions/2.1.0/bin/ruby extconf.rb checking for ruby/thread.h... yes checking for rb_thread_call_without_gvl() in ruby/thread.h... yes checking for rb_thread_blocking_region()... yes checking for rb_wait_for_single_fd()... yes checking for rb_hash_dup()... yes checking for rb_intern3()... yes checking for mysql_query() in -lmysqlclient... no ・ ・ ・ extconf failed, exit code 1
マシンに mysql をインストールすることで解決する
brew install mysql
Installing mysql2 gem for Ruby on Rails with Mac OSX 10.6
以上で、無事に bundle を実行することができました。