yak shaving life

遠回りこそが最短の道

M2 Macでmysql2をbundle installしたらエラー

Gemfileにgem "mysql2"とだけ書いてbundle installしたらld: library not found for -lzstd的なエラーが出た。普段PostgreSQLばかり使っているのでちょっと面食らったが、適当にググって解決したのでメモ。

前提

まず https://github.com/brianmario/mysql2?tab=readme-ov-file#mac-os-xにしたがってopenssl入れたり$ bundle config --local build.mysql2 -- --with-openssl-dir=$(brew --prefix openssl@1.1)してからbundle installした。MySQL自体はHomebrewで既に入れてあった。で、件のエラー。

Rubyバージョンは3.2.2で、asdfで入れたもの。macOSはVentura 13.4。チップはApple M2 Pro。MySQLバージョンは8.2.0_1。

解決まで

調べると色々な記事が出てきたが、issueがあったので主にここを見る。色々試した結果、結局export LIBRARY_PATH=$LIBRARY_PATH:$(brew --prefix zstd)/lib/したらbundle installできるようになった。

環境構築って大変。