在Homebrew中返回readline版本6.x来修复Postgresql?

eri*_*cky 50 postgresql homebrew readline

我不是Homebrew专家,但我认为它在2016年9月15日之后的某个时间点已将我从readline版本6.x升级到7.0 :

eat@eric-macbook:Homebrew$ brew info readline
readline: stable 7.0 (bottled) [keg-only]
Library for command-line editing
https://tiswww.case.edu/php/chet/readline/rltop.html
/usr/local/Cellar/readline/7.0 (45 files, 2M)
Run Code Online (Sandbox Code Playgroud)

这给我的9.4.5 Homebrew版本的Postgresql带来了麻烦(出于可比性的原因,我需要较旧的9.4):

eat@eric-macbook:~$ psql --version
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
  Referenced from: /usr/local/Cellar/postgresql/9.4.5/bin/psql
  Reason: image not found
Trace/BPT trap: 5
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法在Homebrew上找到6.x版本的readline来恢复 - 只有7.0似乎可用(?).

我的问题是双重的:

  • readline版本是否与我的postgres/psql问题不匹配?
  • 如果是这样,我如何使用Homebrew返回6.x来纠正问题?

先感谢您!

Dan*_*tar 61

回答具体问题.

您可以在本地仍然存在的已安装brew包的版本之间切换,如此问题中所述: Homebrew安装特定版本的公式?

要降级到readline 6.x,以下命令对我有用:

brew switch readline 6.3.8
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但我熟悉`brew switch`.如上面的'brew info readline`输出所示,我本地没有v 6.x. 我找不到该版本可以在Homebrew上下载(`brew search readline`).具体问题是:如果您的机器上不再存在,如何获取它? (10认同)

小智 27

只需重新安装postgresql94包,PostgreSQL 9.4将使用新readline包:

brew reinstall postgresql94
Run Code Online (Sandbox Code Playgroud)

  • 但这并没有回答这个问题 (4认同)
  • 看起来像Postgres 9.5.4_1解决了这个问题.只需运行`brew upgrade postgresql` (2认同)

Sam*_*iin 25

注意:由于分支中的更改(由Andrew报告,提交消失),此答案可能已过时

对于仍然面临此问题但无法从自制软件包下载readline 6.3.8的人.你可以尝试这个解决方案.(参考这里)

# Uninstall this incompatible version
brew uninstall readline

# Go to the local clone of homebrew-core
cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core

# Move to the homebrew-core revision that had 6.3.8
git checkout 35fed817726f61a9d40c8420582f6fde59eb5f14

# Re-install readline
brew reinstall readline

# Switch back to HEAD
git checkout master

# Pin readline so this can't happen again
brew pin readline
Run Code Online (Sandbox Code Playgroud)