LoginSignup
36
14

More than 5 years have passed since last update.

MacOS Mojaveでgem 'mysql2'をインストール

Posted at

TL;DR

先日、Railsでアプリケーションを作った際に$ bundle installgem '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

みたいな感じでだーっとながいのがでてきてもうた,,,

やってみたこと

とりあえず、ググって見つけた記事を参考に
1. Xcodeのversionをあげる
2. Xcodeのコマンドラインツール(xcode-select)が入ってるか確認
3. 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

でもうまく行くそうです。

36
14
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
14