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:
Merci d'avance!
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
Il suffit de réinstaller postgresql94
package, PostgreSQL 9.4 utilisera le nouveau package readline
:
brew reinstall postgresql94
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
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
J'ai pu surmonter cela avec une couverture brew upgrade
_ (met à jour tous les paquets gérés par les brasseurs).
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