bundle installでmysql2がインストールできない問題の解決方法

投稿日時:
Ruby

image description


この問題はQiitaやスタックオーバーフローでも多く質問・回答がありますが、それでもなお再度ハマったので今回解決した方法を紹介します。


試したこと1


bundle config --local build.mysql2 --with-opt-lib=/usr/local/opt/openssl/lib --with-opt-include=-I/usr/local/opt/openssl/include

※opensslが入ってない場合は事前にインストールする必要があります


結果

ld: warning: directory not found for option '/usr/local/opt/openssl/lib --with-opt-include=-I/usr/local/opt/openssl/include'

ディレクトリはあるが何故かダメでした。

失敗なのでとりあえずこの記述は.bundle/configから削除します。



試したこと2


xcode-select --install

結果

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

すでにインストールされているとのことで無意味でした。



試したこと3


bundle config --global build.mysql2 --with-opt-dir="$(brew --prefix openssl)"

※opensslが入ってない場合は事前にインストールする必要があります


結果

成功しました。



所感


毎回最初にしかお目にかからないエラーなので久しぶりに見ると手間取ることがあります。

また、試したこと1、2のどちらかで以前は解決できていたのですが、今回はダメでしたので、少しはまりました。


やはり困った時は公式のissuesを探ると良いかと思われます。

https://github.com/brianmario/mysql2/issues/795