macOS + PostgreSQLで環境構築したところ
$ psql dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Referenced from: /usr/local
が出たため、対応した時のメモです。
目次
環境
調査
エラーメッセージを見ると、ライブラリがなさそうでした。
念のため確認してみたところ、確かにありませんでした。
$ ls -al /usr/local/opt/readline/lib total 1448 drwxr-xr-x 11 shinano_gold ringo 352 12 20 06:07 . drwxr-xr-x 12 shinano_gold ringo 384 1 28 09:24 .. -r--r--r-- 1 shinano_gold ringo 40396 1 28 09:24 libhistory.8.0.dylib lrwxr-xr-x 1 shinano_gold ringo 20 12 20 06:07 libhistory.8.dylib -> libhistory.8.0.dylib -r--r--r-- 1 shinano_gold ringo 45880 12 20 06:07 libhistory.a lrwxr-xr-x 1 shinano_gold ringo 20 12 20 06:07 libhistory.dylib -> libhistory.8.0.dylib -rw-r--r-- 1 shinano_gold ringo 239252 1 28 09:24 libreadline.8.0.dylib lrwxr-xr-x 1 shinano_gold ringo 21 12 20 06:07 libreadline.8.dylib -> libreadline.8.0.dylib -r--r--r-- 1 shinano_gold ringo 405848 12 20 06:07 libreadline.a lrwxr-xr-x 1 shinano_gold ringo 21 12 20 06:07 libreadline.dylib -> libreadline.8.0.dylib drwxr-xr-x 3 shinano_gold ringo 96 1 28 09:24 pkgconfig
そのため、Homebrewでインストールするpostgresの依存関係を見てみました。
https://formulae.brew.sh/formula/postgresql@10
すると、
readline ✅ 8.0.0 Library for command-line editing
と、手元の readline 8.0 で動作しそうでした。
また、Homebrewにある最新の postgres のバージョンを確認すると、11.1 でした。
https://formulae.brew.sh/formula/postgresql
対応
brew switch
で readline のバージョンを切り替えることも考えました。
ただ、postgresのバージョンを上げても問題ないだろうと考え、 brew upgrade
しました。
$ brew upgrade postgresql
その後はエラーが発生しなくなりました。