アルパカログ

📅  2021-07-12

RubyGems mysql2のbundle installでOpenSSLのライブラリのパスを指定する


RubyGems mysql2 のインストールには OpenSSL ライブラリが必要ですが、 bundle install 時にライブラリが見つからずにエラーになってしまうことがあります。

このエントリでは、OpenSSL のライブラリを探してパスを指定する方法をメモしておきます。

エラー内容

mysql2 のインストールに失敗したとき、下記のようなエラーが表示されます。

ここで注目すべきは --with-ldflags\=-L/usr/local/opt/openssl/lib の OpenSSL のライブラリの指定部分で、実際にそのパスが存在するか確認します。

もしパスが存在しなければ、ライブラリが見つからないことによるエラーです。

OpenSSLのライブラリを探す

find コマンドを使って OpenSSL のライブラリを探します。

find / -name '*libssl*'

libssl.alibssl.so といったファイルが見つかれば、そのディレクトリのパスを bundle config に指定して bundle install します。

bundle config build.mysql2 "--with-ldflags=-L/usr/lib/x86_64-linux-gnu/"

bundle install

もし libssl.a などのファイルが見つからなければ OpenSSL がインストールされていません。

その場合はOSごとの方法で OpenSSL をインストールします。下記は Debian の例です。

apt-get update -y && apt-get install -y libssl-dev

以上です。