我的所有Heroku命令似乎都可以正常运行,除了用于进入数据库命令行的命令。
正在做
heroku pg:psql -a myapp
产量:
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
我以前对这个“ readline”有疑问。我不确定它是做什么的,或者为什么要这样做,但我该如何克服呢?
我正在Mac OSX Sierra上运行此程序,并且已经在Homebrew中安装了Heroku。
heroku CLI版本:
heroku/7.19.4 darwin-x64 node-v11.3.0
答案 0 :(得分:1)
Readline是一个“供应用程序使用的库,允许用户在键入时编辑命令行”。
对我来说,brew将readline的版本从7(如上面的错误消息中所示)更新为8。您可以通过列出psql正在查找的目录的内容来确认这一点:ls /usr/local/opt/readline/lib/
>
我通过升级postgres:brew upgrade postgres
来解决此问题。请注意,这将升级系统上运行的Postgres版本。这对我来说是无缝的(我现在正在使用9.6.8的数据库服务器运行psgl 11.1),但是请注意要升级的内容,并确保此后一切正常。
我发现此博客文章很有帮助。
答案 1 :(得分:1)
此问题似乎是由于psql
未找到所需的依赖项引起的,在这种情况下为readline
。
如果您没有readline
库依赖项,我会尝试通过Homebrew安装readline
:
brew install readline
但是,如果您已经安装了readline
库,则该映像可能会混乱,因此我将尝试重新安装并链接该库:
brew remove readline
brew install readline
brew link readline --force
希望有帮助!