Mac psql / readline - 未加载库

问题描述 投票:15回答:3

我正在使用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

所以我好像在某个地方,但仍然有问题。如果有人能够对解决方案有所了解,我将永远感激不尽。

python postgresql command-line
3个回答
25
投票

我只需运行brew switch readline 6.3.8即可解决这个问题


9
投票

在我运行brew upgrade之后,我也遇到了这个问题。

首先,您需要在Mac上确认readline的版本。

在您的情况下,您的旧readline的版本是6.x.升级后,您的readline已更新为7.0.1。所以你需要链接你的新readline。

这些代码可能会有所帮助。

$ cd /usr/local/opt/readline/lib/  # cd to readline library
$ sudo ln -s libreadline.7.dylib libreadline.6.dylib  # change the link

我认为更好的方法是更改​​系统readline链接,但我不知道如何更改。


4
投票

Readline已升级,但您仍在使用postgres的旧版psql。将postgres升级到使用当前readline的当前版本为我解决了问题:

brew upgrade postgres

© www.soinside.com 2019 - 2024. All rights reserved.