我刚刚用自制软件安装了 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
有谁知道出了什么问题?
我刚刚用自制软件安装了 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
有谁知道出了什么问题?
我得到了完全相同的错误,但上述答案对我不起作用。我不得不重新安装postgresql。
brew reinstall postgresql
关键问题是您的 postgresql 试图找到libreadline.6.2.dylib
但您的readline
is version 7.0
,所以只有 7 的 lib 被链接。
我不认为升级 postgresql 是一个好主意,这并不容易并且可能会导致很多问题,尤其是当您已经拥有数据库数据时。
我所做的是切换readline
. 当你检查时brew info readline
,你会发现不同的版本,我的是6.3.8
,所以我通过执行切换到那个版本:
$ 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
在这种情况下,所有链接的库都变为 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,我认为您应该考虑升级。
更新:2019 年 6 月 2 日
如果没有安装旧版本怎么办?
Homebrew
不提供安装旧版本公式的方法。从 v2.0.0 开始,它将brew cleanup
作为默认行为每 30 天运行一次。因此,您可能会不小心更新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 说 7.0. 你可以这样做
cd /usr/local/opt/readline/lib
ln libreadline.7.0.dylib libreadline.6.2.dylib
如果您没有安装 readline,请先安装它:
brew install readline
对我来说,我收到了这个错误,即使我安装了 readline。重新安装 readline 就可以了:
brew reinstall readline
这对我有用
brew switch readline
这将显示您已安装的版本。从他们中挑选一个。我选择了 7.0.5
然后我跑了
brew switch readline 7.0.5
readline 版本已更新,psql
运行流畅。
这对我有用
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
解决方法是再次强制链接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
上面的答案对我不起作用,所以我想发布最终起作用的答案。基于我在这里找到的一个线程,我不得不卸载 readline 并再次安装它,但从源代码。
brew uninstall readline
brew install --build-from-source readline
之后 psql 错误消失了。
我遇到了这个问题,对我来说关键是reinstall
同时使用readline
和postgres
. 重新安装 postgres 后,问题就解决了。
修复 psql 的另一种方法是更新刚刚运行
brew upgrade postgresql
的 postgresql,因为最新版本将使用 readline 7 版本。
我尝试了所有这些终端命令,但没有任何效果,所以决定手动修复它。
打开 finder 并点击 command+shift+g
Go to this folder /usr/local/opt/readline/lib/
您应该会看到这些文件的多个版本
libreadline.6.dylib
libreadline.7.0.dylib
将其中任何一个重命名为未加载的任何库
this is: /usr/local/opt/readline/lib/libreadline.6.2.dylib
mine was: /usr/local/opt/readline/lib/libreadline.6.dylib
当我意外地将 readline 更新到版本 7 时,我遇到了这个问题。我卸载了 readline 和 brew 提醒我 6.3.8 仍然安装。似乎版本 7 目前无法与 PSQL 一起使用。
我尝试了所有预览答案,但没有任何效果。唯一对我有用的是:
brew link postgresql
以下命令对我有用:
brew reinstall postgresql
brew postgresql-upgrade-database
这对我有帮助:卸载所有 readline 和 postgresql
导出 CPPFLAGS=-I/usr/local/opt/readline/include 导出 LDFLAGS=-L/usr/local/opt/readline/lib
并安装 posqtgresql
出于某种未知原因,当下一版本的 Readline 出现此错误时,无论我如何符号链接,我的 RVM 似乎都无法找到正确的,抛出:
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
我最终将 gem 添加rb-readline
到我的 Gemfile 并做另一个bundle install
,它开始工作。
我……只是不知道。
你可以试试看brew doctor
它说什么。
可能您所需要的只是brew link --overwrite bash
.
对我来说,我刚刚升级了 brew,因为 OS X EL Capitan 进行了一些影响我的/usr
文件夹的安全升级。在 brew 升级期间,bash 链接被破坏,这就是brew doctor
告诉我的。
所以我只是跑步brew link --overwrite bash
,一切都很好。
您可能想检查是否有其他符号链接到postgresql
. 我之前已链接到postgres93包,截至 17 年 5 月,该包不受支持并已被删除。删除该链接然后重新链接对我有用:
brew unlink postgresql93
brew link postgresql
在我的情况下,正确的答案并没有解决问题。
问题在运行brew doctor
并添加export PATH="/usr/local/bin:$PATH"
到我的 ~/.zshrc 文件后开始。
移除
export PATH="/usr/local/bin:$PATH"
从~/.zshrc
得到它解决。