TL;DR
先日、Railsでアプリケーションを作った際に$ bundle install
でgem 'mysql2'
の部分でこけたので、対処法についての備忘録。
エラーログ
$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Using rake 12.0.0
Using concurrent-ruby 1.0.5
Using i18n 0.8.6
Using minitest 5.10.3
...
Fetching mysql2 0.5.2
Installing mysql2 0.5.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/sabamotto/.rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/mysql2-0.5.2/ext/mysql2
/home/sabamotto/.rbenv/versions/2.4.3/bin/ruby -r ./siteconf20171223-19752-eo01fi.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
...
linking shared-object mysql2/mysql2.so
/usr/bin/ld: -lmariadb が見つかりません
collect2: エラー: ld はステータス 1 で終了しました
make: *** [mysql2.so] エラー 1
make failed, exit code 2
Gem files will remain installed in /home/sabamotto/.rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/mysql2-0.4.9 for inspection.
Results logged to
/home/sabamotto/.rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/mysql2-0.4.9/gem_make.out
An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.2'` succeeds before bundling.
In Gemfile:
mysql2
みたいな感じでだーっとながいのがでてきてもうた,,,
やってみたこと
とりあえず、ググって見つけた記事を参考に
- Xcodeのversionをあげる
- Xcodeのコマンドラインツール(xcode-select)が入ってるか確認
- mysql2の
bundle config
を設定
以下の方々の記事をさんこうにしてもらいましたが、結果不可能でした、、、
- https://qiita.com/nakki/items/e15c6b024d27edb2b96b
- https://qiita.com/unsoluble_sugar/items/1403ddf0ac9709b1aae6
- https://qiita.com/sabamotto/items/31fd6f4799c9a88ad8e1
- https://nekonenene.hatenablog.com/entry/2016/10/31/061350
解決策
ググり続けた結果、スタックオーバーフローで以下のコマンドを発見。
実行し、$ bundle install
がうまくいきました。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
原因
コマンドをみていただくとお分かりのように、OSをMacOS HighSierra
からMojave
にアップグレードし、MojaveでHighSierraのコマンドラインツールを使おうとしていたことな気がします。
他の解決方法
$ sudo open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
でもうまく行くそうです。