当前位置: 首页 > 知识库问答 >
问题:

未加载库:/usr/local/opt/readline/lib/libreadline . 6.2 . dylib

云丰
2023-03-14

我刚刚用homebrew安装了posgresql,当我继续键入命令时

psql

我收到以下错误:

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
[1]    69711 trace trap  psql

有人知道哪里出了问题吗?

共有3个答案

墨阳羽
2023-03-14

如果情况是你有一个更高的版本readline说7.0。你可以这样做

cd /usr/local/opt/readline/lib    
ln libreadline.7.0.dylib libreadline.6.2.dylib
花玄裳
2023-03-14

关键问题是您的postgresql试图找到libreadline.6.2.dylib,但您的readline是version7.0,因此只有7的lib被链接。

我不认为升级postgresql是个好主意,这并不容易,可能会导致很多问题,尤其是当你已经有数据库数据的时候。

我要做的是切换readline的版本。当您检查<code>brew info readline,因此我通过执行以下命令切换到该版本:

$ brew switch readline 6.3.8

它将更改为6.3.8并创建链接:

Cleaning /usr/local/Cellar/readline/6.3.8
Cleaning /usr/local/Cellar/readline/7.0.1
Opt link created for /usr/local/Cellar/readline/6.3.8

在这种情况下,所有链接的lib都变成了6版本,并且命令行起作用:

$ ls /usr/local/opt/readline/lib/
libhistory.6.2.dylib    libhistory.dylib    libreadline.a
libhistory.6.3.dylib    libreadline.6.2.dylib   libreadline.dylib
libhistory.6.dylib  libreadline.6.3.dylib
libhistory.a        libreadline.6.dylib

但是,如果您有使用不同版本的readline的不同应用程序,我认为您应该考虑升级。

更新:06/02/2019

老版本没安装怎么办?

< code>Homebrew不提供安装旧版本公式的方法。从v2.0.0开始,它将每30天运行< code>brew cleanup作为默认行为。因此,您可能会意外更新< code>brew并删除旧版本。

以下是安装旧版本的步骤:

  1. 转到自制核心目录:
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
    $ git log master -- Formula/readline.rb
    commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
    Author: BrewTestBot <brew-test-bot@googlegroups.com>
    Date:   Wed Aug 15 21:51:16 2018 +0000

        readline: update 7.0.5 bottle.
    $ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
    $ brew reinstall readline

按照这些步骤,您可以重新安装旧版本的公式。

夔波
2023-03-14

我得到了完全相同的错误,但上述答案对我不起作用。我不得不重新安装后格雷姆。

< code>brew重新安装postgresql

 类似资料: