web-dev-qa-db-fra.com

Revenir à la version 6.x de Readline dans Homebrew pour corriger Postgresql?

Je ne suis pas un expert Homebrew mais je pense qu'il m'a "mis à niveau" de la version 6.x de Readline à la version 7.0 peu de temps après 15/09/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'ancienne version 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 version 6.x de readline sur Homebrew, seule la version 7.0 semble être disponible (?).

Ma question est double:

  • La version readline ne correspond-elle pas à la cause de mon problème postgres/psql?
  • Si tel est le cas, comment puis-je revenir à 6.x avec Homebrew pour résoudre le problème?

Merci d'avance!

50
ericky

Pour répondre à la question spécifique.

Vous pouvez basculer entre les versions des paquets de brasseurs installés qui existent toujours localement, comme expliqué dans cette question: Version spécifique de la formule installée par Homebrew?

Pour rétrograder à readline 6.x, la commande suivante a fonctionné pour moi:

brew switch readline 6.3.8
61
DanEEStar

Il suffit de réinstaller postgresql94 package, PostgreSQL 9.4 utilisera le nouveau package readline:

brew reinstall postgresql94
27
vitalie

NOTE: Cette réponse peut être obsolète à cause des changements dans la branche (comme l'a rapporté Andrew, le commit disparaît)

Pour ceux qui sont toujours confrontés à ce problème mais ne peuvent pas télécharger la readline 6.3.8 à partir du paquet homebrew. Vous pouvez essayer cette solution. (Voir à partir de 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
25
Sam Kah Chiin

Pour les personnes venant de Rails avec ce problème, vous pouvez simplement ajouter le bijou readline et exécuter bundle install.

gem 'rb-readline' #Fixed readline error
3
bkunzi01

J'ai pu surmonter cela avec une couverture brew upgrade _ (met à jour tous les paquets gérés par les brasseurs).

1
Seth Bro

Si vous utilisiez la solution de Sam Kah Chiin, vous pouvez ignorer la 404.

Appliquez la modification supplémentaire pour que cela fonctionne sur le nouveau 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
user2679290