我正在使用Mac,Sierra 10.12.3,我正在尝试通过psql
命令访问PostgreSQL数据库,但它引发了错误
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
Abort trap: 6
一两天前,我和某人合作,我需要安装pip,所以我跑了brew install pip
,这一切都很好。这是我从那时起第一次尝试运行psql
并且我不确定这与我的问题有什么关系,但似乎可能因为我没有做任何其他更改。
现在我做了一些侦探工作,发现如果我去了/usr/local/opt/
,确实有一个readline
别名目录指向/usr/local/Cellar/readline/7.0.1
(版本7.0.1似乎也有在某些时候得到安装 - 可能是作为pip的一部分?也许我错误地做了...)所以它有一定意义,应该抛出原始错误。我将别名更改为指向/usr/local/Cellar/readline/6.3.8
,错误略有改变:
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /usr/local/bin/psql
Reason: no suitable image found. Did find:
/usr/local/opt/readline/lib/libreadline.6.dylib: stat() failed with errno=20
Abort trap: 6
所以看起来我正在某个地方,但仍然有问题。如果有人能够对解决方案有所了解,我将永远感激不尽。
答案 0 :(得分:25)
我只需运行brew switch readline 6.3.8
答案 1 :(得分:5)
运行brew upgrade
之后,我也遇到了这个问题。
首先,您需要在Mac上确认readline
的版本。
根据您的情况,您的旧readline版本是6.x。升级后,您的readline已更新为7.0.1。因此,您需要链接新的阅读热线。
这些代码可能会有所帮助。
$ cd /usr/local/opt/readline/lib/ # cd to readline library
$ sudo ln -s libreadline.7.dylib libreadline.6.dylib # change the link
我认为更好的方法是更改系统readline链接,但我不知道如何更改。
答案 2 :(得分:2)
Readline已升级,但您仍在使用来自postgres的旧psql。将postgres升级到使用当前readline的当前版本可以解决我的问题:
brew upgrade postgres