Je viens d'installer postgresql avec homebrew et quand je passe à taper la commande
psql
Je reçois l'erreur suivante:
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
[1] 69711 trace trap psql
Est-ce que quelqu'un a une idée de ce qui ne va pas?
Je recevais exactement la même erreur, mais les réponses ci-dessus ne fonctionnaient pas pour moi. J'ai dû réinstaller postgresql.
brew reinstall postgresql
Le problème clé est que votre postgresql essayait de trouver le libreadline.6.2.dylib
mais que votre readline
est la version 7.0
, de sorte que seule la bibliothèque de 7 est liée.
Je ne pense pas que la mise à niveau de postgresql soit une bonne idée, ce n'est pas facile et peut causer beaucoup de problèmes, en particulier lorsque vous avez déjà des données de base de données.
Ce que je fais est de changer de version de readline
. Lorsque vous cochez brew info readline
, vous trouverez différentes versions, la mienne est 6.3.8
; je passe donc à cette version en exécutant:
$ brew switch readline 6.3.8
Il passera à 6.3.8 et créera le lien:
Cleaning /usr/local/Cellar/readline/6.3.8
Cleaning /usr/local/Cellar/readline/7.0.1
Opt link created for /usr/local/Cellar/readline/6.3.8
Dans ce cas, toute la bibliothèque liée devient la version 6 et la ligne de commande fonctionne:
$ ls /usr/local/opt/readline/lib/
libhistory.6.2.dylib libhistory.dylib libreadline.a
libhistory.6.3.dylib libreadline.6.2.dylib libreadline.dylib
libhistory.6.dylib libreadline.6.3.dylib
libhistory.a libreadline.6.dylib
Cependant, si vous avez différentes applications utilisant la version différente de readline, je pense que vous devriez envisager une mise à niveau.
Mise à jour: 06/02/2019
Et si l'ancienne version n'est pas installée?
Homebrew
ne fournit pas un moyen d'installer l'ancienne formule de version. Et depuis la version 2.0.0, il exécutera brew cleanup
comme comportement par défaut tous les 30 jours. Par conséquent, vous pouvez accidentellement mettre à jour brew
et supprimer l'ancienne version.
Voici les étapes pour installer l'ancienne version:
homebrew-core
: $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core`
$ git log master -- Formula/readline.rb
commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
Author: BrewTestBot <[email protected]>
Date: Wed Aug 15 21:51:16 2018 +0000
readline: update 7.0.5 bottle.
$ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
$ brew reinstall readline
En suivant ces étapes, vous pouvez réinstaller l’ancienne version de la formule.
Si la situation est que vous avez une version plus haute readline dire 7.0. Tu peux le faire
cd /usr/local/opt/readline/lib
ln libreadline.7.0.dylib libreadline.6.2.dylib
Si vous n'avez pas installé Readline, installez-le d'abord:
brew install readline
Pour moi, je recevais cette erreur, même si j'avais Readline installé. La réinstallation de readline a fait l'affaire:
brew reinstall readline
Cela a fonctionné pour moi
brew switch readline
Cela afficherait les versions que vous avez installées. Choisissez-en un. J'ai choisi 7.0.5
J'ai ensuite couru
brew switch readline 7.0.5
La version de readline a été mise à jour et psql
s'est bien déroulée.
La solution consiste à forcer la liaison de readline à nouveau.
brew remove readline
brew install readline
brew link readline --force
cela a fonctionné pour moi
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
Aucune de ces solutions n'a fonctionné pour moi; Je devais courir:
brew upgrade bash
à partir de: https://github.com/Homebrew/homebrew-core/issues/5799
La réponse ci-dessus n'a pas fonctionné pour moi, donc je voulais publier ce qui a finalement fonctionné. Basé sur un fil, j'ai trouvé ici , je devais désinstaller readline et l'installer à nouveau, mais à partir du source.
brew uninstall readline
brew install --build-from-source readline
Après cela, l'erreur psql a disparu.
J'ai eu ce problème quand j'ai mis à jour readline à la version 7 par accident. J'ai désinstallé readline et me rappelle que Brew 6.3.8 est toujours installé. Il semble que la version 7 ne fonctionne pas avec PSQL pour le moment.
J'avais ce problème, et la clé pour moi était reinstall
à la fois readline
et postgres
. Une fois postgres réinstallé, le problème était résolu.
Une autre façon de réparer psql est de mettre à jour postgresql en exécutant brew upgrade postgresql
puisque la version la plus récente utilise readline 7
J'ai essayé toutes ces commandes de terminal et rien ne fonctionnait alors j'ai décidé de le réparer manuellement ..
Ouvrez le Finder et appuyez sur commande + décalage + g
Go to this folder /usr/local/opt/readline/lib/
vous devriez voir plusieurs versions de ces fichiers
libreadline.6.dylib
libreadline.7.0.dylib
renommer n'importe lequel d'entre eux, quelle que soit la bibliothèque n'est pas chargée
this is: /usr/local/opt/readline/lib/libreadline.6.2.dylib
mine was: /usr/local/opt/readline/lib/libreadline.6.dylib
Cela m’avait aidé: Désinstaller tout readline et postgresql
export CPPFLAGS = -I/usr/local/opt/readline/include export LDFLAGS = -L/usr/local/opt/readline/lib
et installer posqtgresql
J'ai trouvé cette solution utile
brew upgrade bash
J'ai essayé toutes les réponses de prévisualisations, et rien n'a fonctionné. La seule chose qui a vraiment fonctionné pour moi a été:
brew link postgresql
Il me semble que le problème concerne le paquet de mise à jour readline . Postgres a essayé d'utiliser /usr/local/opt/readline/lib/libreadline.7.dylib dans mon cas. Je viens donc de créer un lien symbolique vers la version existante de la bibliothèque /usr/local/opt/readline/lib/libreadline.8.dylib.
a travaillé pour moi:
ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Dans mon cas, la réponse correcte n'a pas résolu le problème.
Le problème a commencé après l'exécution de brew doctor
et l'ajout de export PATH="/usr/local/bin:$PATH"
à mon fichier ~/.zshrc.
Enlever
export PATH="/usr/local/bin:$PATH"
de ~/.zshrc
l'a résolu.
Vous pouvez essayer brew doctor
et voir ce qu'il dit.
Tout ce dont vous avez besoin est probablement brew link --overwrite bash
.
En ce qui me concerne, je viens de mettre à niveau une bière car OS X EL Capitan disposait d’une mise à niveau de sécurité qui affetcs mon dossier /usr
. Lors de la mise à niveau de la bière, le lien bash est rompu et c'est ce que brew doctor
me dit.
Donc, je lance juste brew link --overwrite bash
et tout va bien.
Vous voudrez peut-être vérifier si vous avez un lien symbolique vers postgresql
. J'avais précédemment lié le paquet postgres93 , qui, à compter du 17 mai, n'était pas pris en charge et a été supprimé. Supprimer ce lien puis relier a fonctionné pour moi:
brew unlink postgresql93
brew link postgresql