いろいろ調べてググった結果はどれもNGだったので備忘録として。
現象
OSをCatalinaにアップデート後に、heroku-cliでコマンドを打つと以下のようにエラーが出るようになりました。
console
$ heroku pg:psql -c "select count(*) from users;" --app hogehgoe
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
で、ググるとシンボリックリンクを張るよう出てくるので、やってみる
console
$ ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
そうすると再びエラーとなる
console
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/Cellar/postgresql/10.3/lib/libpq.5.10.dylib
Reason: image not found
再度シンボリックリンクをlibsslに貼るとまた別のエラーになる
console
dyld: lazy symbol binding failed: Symbol not found: _CRYPTO_num_locks
Referenced from: /usr/local/lib/libpq.5.dylib
Expected in: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
dyld: Symbol not found: _CRYPTO_num_locks
Referenced from: /usr/local/lib/libpq.5.dylib
Expected in: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
この時点でこの対応は多分違うんじゃないかと気付いた次第。
対処
- rubyのバージョンを最新にアップデート(参考リンクを参照)
- readlineを最新にアップデート(Homebrew使用)
- postgresqlを最新にアップデート(Homebrew使用)