我刚刚使用Homebrew安装了postgresql,当我输入命令时,
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
有人知道出了什么问题吗?
我刚刚使用Homebrew安装了postgresql,当我输入命令时,
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
有人知道出了什么问题吗?
我遇到了完全相同的错误,但上面的答案对我没有用。我不得不重新安装postgresql。
brew reinstall postgresql
pg_upgrade
。 - dazoniclibreadline.6.2.dylib
,但是你的readline
版本是7.0
,因此只有7的库被链接。readline
的版本。当你检查brew info readline
时,你会发现不同的版本,我的是6.3.8
,所以我通过执行以下命令来切换到那个版本:$ brew switch readline 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
$ 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
如果旧版本未安装怎么办?
Homebrew
不提供安装旧版本公式的方法。自 v2.0.0 以来,它将默认每 30 天运行 brew cleanup
。因此,您可能会意外更新 brew
并删除旧版本。
以下是安装旧版本的步骤:
homebrew-core
目录: $ 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
按照这些步骤,您可以重新安装旧版本的配方。
readline
?这样做还有哪些缺点? - Kenny Evitt如果情况是您拥有更高版本的readline,例如7.0,则可以执行以下操作
cd /usr/local/opt/readline/lib
ln libreadline.7.0.dylib libreadline.6.2.dylib
brew uninstall --force gawk
然后 brew install gawk
就让我成功的运行起来了。你也可以尝试使用 brew reinstall --force gawk
。 - Csteele5pg_top
,它升级了libreadline到8.0并破坏了psql。我使用了你的技巧,只不过将其创建为符号链接 ln -s libreadline.8.0.dylib libreadline.7.dylib
。 - Davosbrew install readline
。对我而言,即使我已经安装了readline,我仍然遇到了此错误。重新安装readline解决了这个问题。brew reinstall readline
bash
解决了:brew install --build-from-source bash
。 - whatbirdbrew reinstall readline
(获取Sierra特定的brew),同时也执行了brew reinstall postgresql94
。有人说要重新安装bash,但我从未安装过它。所以这个答案和被选中的答案都对我有用。 - risa_risa这对我有用
brew switch readline
这将显示您已安装的版本。从中选择一个。我选择了7.0.5
然后我运行了:
brew switch readline 7.0.5
readline 版本已更新,psql
运行顺畅。
libreadline.7.dylib
,但我正在使用readline 8.0.0。从8.0.0切换到7.0.5解决了问题。我预计创建符号链接(如其他人所做)也可以工作,如果我想保持在8.0.0上。但是,让较新的版本链接到较旧的版本是具有误导性的,并且可能会引起其他问题。 - Dennis这对我有用
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib
,所以我使用了 ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.2.dylib
。 - Tyler Collier解决方案是再次强制链接readline。
brew remove readline
brew install readline
brew link readline --force
在我看来,问题似乎是关于更新readline包的。在我的情况下,Postgres试图使用 /usr/local/opt/readline/lib/libreadline.7.dylib。因此,我只需为现有版本的库 /usr/local/opt/readline/lib/libreadline.8.dylib 创建一个符号链接即可。
这对我有用:
ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
这些解决方案都对我没用,我必须运行:
brew upgrade bash
根据您的要求,我将为您翻译关于IT技术方面的内容。我发现上面的答案对我不起作用,所以我想发布最终奏效的方法。基于我在这里找到的一个线程,我必须卸载readline并再次从源代码安装。
brew uninstall readline
brew install --build-from-source readline
之后,psql错误消失了。