it-swarm.com.de

Psql-Befehl kann nicht ausgeführt werden, erhalten Sie weiterhin den gleichen Fehler

Ich habe gerade postgresql mit Homebrew installiert und wenn ich dann den Befehl eingebe

psql

Ich erhalte folgende Fehlermeldung:

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

Hat jemand eine Ahnung, was falsch ist?

141
hbejgel

Ich habe genau den gleichen Fehler erhalten, aber die obigen Antworten funktionierten nicht für mich. Ich musste Postgresql neu installieren.

brew reinstall postgresql

233
dafunkeemonkee

Das Hauptproblem ist, dass Ihr Postgresql versucht hat, den libreadline.6.2.dylib zu finden, aber Ihre readline ist die Version 7.0. Daher ist nur die lib von 7 verknüpft.

Ich denke nicht, dass ein Upgrade von postgresql eine gute Idee ist, es ist nicht einfach und kann viele Probleme verursachen, insbesondere wenn Sie bereits Datenbankdaten haben.

Was ich mache, ist die Version von readline zu wechseln. Wenn Sie brew info readline überprüfen, werden Sie verschiedene Versionen finden, meine ist 6.3.8. Daher wechsle ich zu dieser Version, indem Sie Folgendes ausführen:

$ brew switch readline 6.3.8

Es ändert sich zu 6.3.8 und erstellt den Link:

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

In diesem Fall wird die gesamte verknüpfte lib auf Version 6 und die Befehlszeile funktioniert:

$ 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

Wenn Sie jedoch unterschiedliche Apps mit der anderen Version von readline verwenden, sollten Sie ein Upgrade in Betracht ziehen.


Update: 06/02/2019

Was ist, wenn die alte Version nicht installiert ist?

Homebrew bietet keine Möglichkeit, die alte Versionsformel zu installieren. Und seit Version 2.0.0 wird alle 30 Tage brew cleanup als Standardverhalten ausgeführt. Daher können Sie versehentlich brew aktualisieren und die alte Version löschen.

Hier sind die Schritte zum Installieren der alten Version:

  1. Gehen Sie in das homebrew-core Verzeichnis:
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core`
  1. Überprüfen Sie den Hash auf alte Formel:
    $ git log master -- Formula/readline.rb
  1. Suchen Sie die entsprechende Version des Hashwerts
    commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
    Author: BrewTestBot <[email protected]>
    Date:   Wed Aug 15 21:51:16 2018 +0000

        readline: update 7.0.5 bottle.
  1. Kasse nach alter Formel:
    $ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
  1. Installieren Sie die Formel erneut:
    $ brew reinstall readline
  1. Setzen Sie das Repo zurück

Mit diesen Schritten können Sie die alte Version der Formel erneut installieren.

86
Stephen

Wenn dies der Fall ist, haben Sie eine höhere Readline-Version, beispielsweise 7.0. Du kannst das

cd /usr/local/opt/readline/lib    
ln libreadline.7.0.dylib libreadline.6.2.dylib
56
anvy zhang

Wenn Sie readline nicht installiert haben, installieren Sie es zuerst:

brew install readline

Ich habe diese Fehlermeldung erhalten, obwohl ich readline installiert hatte. Readline neu zu installieren hat den Trick:

brew reinstall readline
45
Troy

Das hat bei mir funktioniert 

brew switch readline

Dies würde die installierten Versionen anzeigen. Wählen Sie eine davon aus. Ich habe 7.0.5 gewählt

Ich bin dann gerannt

brew switch readline 7.0.5

Die Readline-Version wurde aktualisiert und psql lief reibungslos.

21
sindhu_sp

Die Lösung besteht darin, die Verknüpfung von readline erneut zu erzwingen.

brew remove readline
brew install readline
brew link readline --force
18
Alex Palcuie

das hat für mich funktioniert 

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
16
Jon

Keine dieser Lösungen funktionierte für mich. Ich musste rennen:

brew upgrade bash

von: https://github.com/Homebrew/homebrew-core/issues/5799

8
Anthony Dahanne

Die obige Antwort funktionierte nicht für mich, also wollte ich posten, was letztendlich funktioniert hat. Basierend auf einem Thread, den ich hier gefunden habe, musste ich readline deinstallieren und es erneut installieren, aber von der Quelle. 

brew uninstall readline
brew install --build-from-source readline

Danach ging der psql-Fehler weg.

6
Mark Pruce

Dieses Problem hatte ich, als ich readline versehentlich auf Version 7 aktualisiert habe. Ich habe readline deinstalliert und Brew Reminder daran, dass 6.3.8 noch installiert ist. Es scheint, dass Version 7 im Moment nicht mit PSQL arbeitet.

4
Yuanqi Cao

Ich hatte dieses Problem und der Schlüssel für mich war reinstall sowohl readline als auch postgres. Nachdem Postgres erneut installiert wurde, wurde das Problem behoben.

4
Micah Bales

Eine weitere Möglichkeit, psql zu korrigieren, ist das Update postgresql, das gerade ausgeführt wird brew upgrade postgresql, da die neueste Version readline 7 verwendet. 

3
zegomesjf

Ich habe alle diese Terminalbefehle ausprobiert und nichts hat funktioniert, also habe ich mich entschieden, es manuell zu beheben. 

Öffne den Finder und drücke Befehl + Shift + g  

Go to this folder /usr/local/opt/readline/lib/

sie sollten mehrere Versionen dieser Dateien sehen 

libreadline.6.dylib
libreadline.7.0.dylib

benennen Sie eine von ihnen in die Bibliothek, die nicht geladen ist

this is: /usr/local/opt/readline/lib/libreadline.6.2.dylib
mine was: /usr/local/opt/readline/lib/libreadline.6.dylib
3
Priince Abalogu

Dies hatte mir dabei geholfen: Readline und postgresql deinstallieren

export CPPFLAGS = -I/usr/local/opt/readline/include export LDFLAGS = -L/usr/local/opt/readline/lib

und installiere posqtgresql

2
ph4n70m

Ich fand diese Lösung hilfreich 

brew upgrade bash

https://github.com/Homebrew/homebrew-core/issues/5799

1
Tornike

Ich habe alle Antworten in der Vorschau ausprobiert und nichts hat funktioniert. Das einzige, was wirklich für mich funktioniert hat:

brew link postgresql

1
finx

Es scheint mir, dass das Problem darin liegt, das Readline-Paket zu aktualisieren. Also habe ich gerade einen Symlink zur bestehenden Version der Bibliothek /usr/local/opt/readline/lib/libreadline.8.dylib erstellt.

arbeitete für mich:

ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

In meinem Fall konnte die richtige Antwort das Problem nicht beheben.

Das Problem begann, nachdem brew doctor ausgeführt und export PATH="/usr/local/bin:$PATH" meiner ~/.zshrc-Datei hinzugefügt wurde.

Entfernen 

export PATH="/usr/local/bin:$PATH" 

von ~/.zshrc hat es gelöst.

0
xyz

Aus irgendeinem unbekannten Grund, als dieser Fehler für die nächste Version von Readline auftauchte, schien meine RVM nicht in der Lage zu sein, den richtigen zu finden, unabhängig davon, wie ich ihn symbolisiert habe.

Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)

Am Ende habe ich den Edelstein rb-readline zu meinem Gemfile und mache einen anderen bundle install und es fing an zu arbeiten.

Ich weiß es einfach nicht.

0
Erik Trautman

Sie könnten brew doctor ausprobieren und sehen, was darin steht.

Möglicherweise ist alles, was Sie brauchen, brew link --overwrite bash.

Für mich habe ich gerade ein Upgrade vorgenommen, seit OS X EL Capitan ein Sicherheitsupgrade hatte, das meinen Ordner /usr betrifft. Während des Brew-Upgrades ist der Bash-Link unterbrochen, und brew doctor sagt es mir.

Also starte ich brew link --overwrite bash und alles ist gut.

0
Hustlion

Möglicherweise möchten Sie überprüfen, ob noch etwas mit postgresql verknüpft ist. Ich hatte zuvor mit dem Paket postgres93 verlinkt, das ab Mai '17 nicht mehr unterstützt wird und entfernt wurde. Diesen Link zu entfernen und dann erneut zu verknüpfen, funktionierte für mich: 

brew unlink postgresql93
brew link postgresql
0
sp89