ローカルのRails開発環境を構築するときにハマったので対応方法を記しておく。 mysql2が修正されるまでハマる人が多そうなので手助けになれば!
前提情報
環境はこんな感じ
遭遇してたこと
10/15頃にbundle install にて mysql2 をインストールしようとすると以下のエラーが発生してコケていた。 railsの環境構築で必要な他の対応は済んでいたんだけど、 -limported_openssl
ライブラリがないというのに遭遇してた。。ググっても検索にヒットする情報も数件程度しかなく困ってた。
最終的に10/17に記載されてたmysql2のissueを読んで解決に至った。
(省略) linking shared-object mysql2/mysql2.bundle ld: library not found for -limported_openssl clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [mysql2.bundle] Error 1 make failed, exit code 2
原因
- mysql2 の
0.5.2
や0.4.10
で発生している不具合らしくlimported_openssl
に対するリンクが10/14のMySQL 5.6.46から変更されたことが原因らしい。
解決方法
issueに記載されてる方法を試して解消した。
MySQL@5.6
をMySQL@5.6.46
の前バージョンであるMySQL 5.6.46
に切り替えることにより回避できる。- git checkoutがうまく切り替わらないことがあるらしいので、git checkout後に git の log を確認するなどして切り替わっていることを確認したほうが良い。
$ brew uninstall mysql@5.6 $ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core $ git checkout f171f1c746db01c283aa137cb24248fbb8eb7a18 Formula/mysql@5.6.rb $ brew install mysql@5.6
- 他の方法として
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/mysql@5.6.rb
を https://github.com/Homebrew/homebrew-core/blob/f171f1c746db01c283aa137cb24248fbb8eb7a18/Formula/mysql%405.6.rb に置き換える方法もあるらしい。- ただこちらの方法は試してはいないので正しく動作するかはわからない。。。
所感
無事解決した訳だけど、ググっても解決方法が見つからない場合はバグの可能性も考えてGitHubのissuesに挙がっていないか確認する癖を付けると良さそうに思いました。あとは問題に遭遇したタイミングでissueを記載できるとなお良さそう。