De retour à readline version 6.x dans Homebrew pour fixer Postgresql?

Je ne suis pas expert chez Homebrew mais je pense qu'il a" mis à jour " moi de la version 6 de readline.x à 7,0 peu après 9/15/16 :

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)

cela a causé des maux de tête pour ma version 9.4.5 Homebrew de Postgresql (j'ai besoin de l'ancien 9.4 pour des raisons de comparabilité):

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

malheureusement je ne trouve pas de 6.x version de readline sur Homebrew pour revenir à seulement 7.0 semble être disponible(?).

ma question Est double:

  • L'inadéquation de la version readline est-elle la cause de mon problème postgres/psql?
  • Si oui, comment puis-je retourner à 6.x avec Homebrew pour corriger le problème?

Merci d'avance!

44
demandé sur ericky 2016-10-03 03:07:49

6 réponses

juste réinstaller" paquet 151910920", le paquet PostgreSQL 9.4 utilisera le nouveau paquet readline :

brew reinstall postgresql94
26
répondu vitalie 2016-10-03 09:22:30

pour répondre à la question spécifique.

vous pouvez basculer entre les versions des paquets brew installés qui sont encore présents localement comme expliqué dans cette question: Homebrew installer la version spécifique de la formule?

de déclassement à readline 6.x la commande suivante a fonctionné pour moi:

brew switch readline 6.3.8
58
répondu DanEEStar 2017-05-23 12:18:23

à ceux qui sont encore confrontés à cette question mais ne peuvent pas télécharger la ligne de lecture 6.3.8 à partir du paquet homebrew. Vous pouvez essayer cette solution. (Se référer à ici )

# 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
23
répondu Sam Kah Chiin 2016-11-04 07:56:06

j'ai été en mesure de surmonter cela avec une couverture brew upgrade (mise à niveau de tous les paquets brew-managed).

1
répondu Seth Bro 2017-05-11 17:12:25

pour les personnes venant de Rails avec cette question, vous pouvez juste ajouter le gem de ligne de lecture et courir bundle install .

gem 'rb-readline' #Fixed readline error
0
répondu bkunzi01 2017-06-19 17:36:16

si vous voulez utiliser la solution de Sam Kah Chiin, vous pouvez ignorer le 404.

appliquer le changement supplémentaire pour qu'il fonctionne sur les nouveaux macOS:

diff --git a/Formula/readline.rb b/Formula/readline.rb
index 08d3728..d67e5e4 100644
--- a/Formula/readline.rb
+++ b/Formula/readline.rb
@@ -16,7 +16,7 @@ class Readline < Formula
     sha256 "c129333634dd00ab2267ae9c531fca1f5cc50dd519ed3399918289fdfdf2663b" => :lion
   end

-  keg_only :shadowed_by_osx, <<-EOS.undent
+  keg_only :shadowed_by_macos, <<~EOS
     OS X provides the BSD libedit library, which shadows libreadline.
     In order to prevent conflicts when programs look for libreadline we are
     defaulting this GNU Readline installation to keg-only.

Faire sudo update_dyld_shared_cache à la fin

0
répondu user2679290 2018-07-27 22:53:44