ただのメモ書きです
背景とか
gemのnative拡張の.so依存は、基本的にはpkg-configにまかせていればよいのだけど、
残念ながら、gem "pg"
においては、pg_configを参照できないときに、pkg-configにfallbackしてくれるのは、2022年1月リリースのv1.3.0からである。
see: https://github.com/ged/ruby-pg/blob/master/History.rdoc#v130-2022-01-20-michael-granger-gedfaeriemudorg-
プロダクトコードのライブラリバージョンを上げるのは後からにして、ひとまずbundle configでの解決策をメモしておく。
(他にもpkg-configに対応していないnative拡張のgemがあったら後で自分で参照する用)
ネイティブライブラリのインストール
homebrewのpostgres formulaeを入れると、サーバーごと入ってしまうので、libpqのみ入れる
gemは"pg"だけど、ライブラリは"libpq"なので注意。(なんなんや)
brew install libpq
# 確認
ls -l $(brew --prefix libpq)/bin/pg_config
-r-xr-xr-x 1 hoge hoge 72016 5 10 06:25 /usr/local/opt/libpq/bin/pg_config
bundlerのconfigを設定してインストール
gemコマンドに対するオプションはbundle-configで与えるようにする。
この設定は永続化するので1回だけやればいい。
プロジェクト毎にconfigするのは面倒なので、--globalにして、$HOME/.bundle/config に設定を入れてしまって構わないと思う。(詳しい人、問題がありそうなら教えてください)
bundle config --global build.pg --with-pg-config=$(brew --prefix libpq)/bin/pg_config
解決したはず
bundle