ライブラリがロードされていません:/usr/local/opt/readline/lib/libreadline.6.2.dylib


239

Homebrewでposgresqlをインストールし、コマンドを入力すると

psql

次のエラーが発生します。

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

誰が何が悪いのかについて何か考えを持っていますか?


1
readlineにリンクされているように見えますが、存在しません。その後、readlineをアンインストールしましたか?どのように正確に PostgreSQLを自作でインストールしましたか?(手順、コマンドS)。
クレイグリンガー、2014

1
stackoverflow.com/questions/42356309/…によって解決される可能性があります。これは、以下のほとんどよりも簡潔な回答です(おそらくpostgresを再インストールする必要はありません!)
10'57

回答:


373

まったく同じエラーが発生しましたが、上記の回答ではうまくいきませんでした。postgresqlを再インストールする必要がありました。

brew reinstall postgresql


5
これはエルキャピタンで私のためにそれをやった
セバスチャン・サストレ

6
私の問題は、brewを使用したpythonのインストールに関連しているようです
guyarad

6
Postgresの最新バージョンをまだ使用していない場合は、注意してください。古いPostgresを新しいPostgresと一緒に再インストールして、次を実行する必要がありますpg_upgrade
dazonic

7
ローカルデータベースを失いたくない場合は、これは非常に重い処理です。「brew switch readline 6.3.8」で運が良かった
クリストファージョンソン

4
psqlの再インストールが小さなバグのように見える根本的なステップであると考える場合、あなたは一人ではありません。この回答:stackoverflow.com/a/41476592/839876は、これらの回答のほとんどが回避する実際の問題に対処しているようです。
frandroid

127

重要な問題は、あなたのpostgresqlがを見つけようとしていたことですがlibreadline.6.2.dylib、あなたのreadlineバージョン7.0であるので、7のlibのみがリンクされています。

postgresqlのアップグレードは良い考えではないと思います。これは簡単ではなく、特にすでにデータベースデータがある場合は、多くの問題を引き起こす可能性があります。

私がすることは、のバージョンを切り替えることです readline。チェックbrew info readlineすると、別のバージョンが見つかります。私のバージョンは6.3.8なので、次のコマンドを実行してそのバージョンに切り替えます。

$ brew switch readline 6.3.8

6.3.8に変更され、リンクが作成されます。

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

この場合、リンクされたすべてのlibは6バージョンになり、コマンドラインは機能します。

$ 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

ただし、異なるバージョンのreadlineを使用する異なるアプリがある場合は、アップグレードを検討する必要があります。


アップデート:06/02/2019

古いバージョンがインストールされていない場合はどうなりますか?

Homebrew古いバージョンの数式をインストールする方法はありません。そしてv2.0.0以降、それは実行されますbrew cleanup 30日ごとにデフォルトの動作としてれます。そのため、誤っbrewて古いバージョンを更新して削除してしまう可能性があります。

古いバージョンをインストールする手順は次のとおりです。

  1. homebrew-coreディレクトリに移動します。
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
  1. 古い式のハッシュを確認します。
    $ git log master -- Formula/readline.rb
  1. ハッシュ値の対応するバージョンを見つける
    commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
    Author: BrewTestBot <brew-test-bot@googlegroups.com>
    Date:   Wed Aug 15 21:51:16 2018 +0000

        readline: update 7.0.5 bottle.
  1. 古い数式へのチェックアウト:
    $ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
  1. 式を再インストールします。
    $ brew reinstall readline
  1. リポジトリをリセットする

これらの手順に従って、古いバージョンの数式を再インストールできます。


1
そして私-readline 7に他の依存関係がない場合、これは間違いなく最も破壊的なアプローチです。
描いた

これも私にとってはうまくいき、郵便料金を更新する必要がなくなりました
Rich

私もうまくいきました...データベース全体を更新するよりもはるかにクリーンな解決策
2018

readlineインストールされている他のバージョンにいつ切り替えたいですか?これを行うことには他にどのような欠点がありますか?
ケニーエビット

インストールされているreadlineは1つだけで、readlineのローカルチェックアウトには8.0しか含まれておらず、すべてをフェッチした後でも、ログには古いバージョンのコミットがありません。古いバージョンのreadlineをインストールするのは不可能のようです。postgresをアップグレードすることが唯一の選択肢かもしれません
Andy Ray

78

状況がより高いバージョンのreadlineである場合は7.0と言ってください。あなたはこれを行うことができます

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

5
「libreadline.6.dylib」という名前のリンクを作成する必要がありましたが、これが私にとって有効な唯一の提案でした。
Mads Hoel 2017年

1
これと関連してbrew uninstall --force gawk、それbrew install gawkが私を立ち上げた理由です。また、単にすることができるかもしれませんbrew reinstall --force gawk
Csteele5

1
いいね。libreadline.7.dylibが必要なpostgres 10.6を実行していますが、pg_toplibreadlineを8.0にアップグレードしてpsqlを壊しただけをインストールしました。私はあなたのトリックを使用しましたが、それをシンボリックリンクにしました ln -s libreadline.8.0.dylib libreadline.7.dylib
ダボス

ありがとう、ありがとう。これは、PostgreSQLをアンインストールして再インストールすることなくMacOS Mojaveで機能しました(これは本当に大変な作業でした)。
crmpicco

46

readlineがインストールされていない場合は、まずインストールしてください:

brew install readline

私にとって、readlineがインストールされていても、このエラーが発生しました。readlineを再インストールするとうまくいきました:

brew reinstall readline

6
readlineのが私のためにそれを行うが、アンインストール/再インストールしませんでしたbash:やったbrew install --build-from-source bash
whatbird

最初にreadlineのすべてのバージョンを削除する必要があることがわかりました(brew uninstall --force readline)。再インストールした後、「brew link --force readline」で強制的にリンクする必要がありました
Wilhelm

bashを再インストールすることも私にとっての修正でしたが、私の場合、「参照元」の行は特にbashについて言及していました。
mbafford 2016年

MacOS Sierraをインストールした後、私はこの問題に遭遇していました。私はbrew reinstall readline(Sierra固有のbrewを取得するために)両方を行いました brew reinstall postgresql94。人々はbashを再インストールすると言いましたが、私はそれを最初から持っていませんでした。したがって、この答えと選択された答えはどちらもうまくいきました。
risa_risa 16

他のバージョンに切り替えた後、brew reload readlineが機能しました(これまで機能していた)が、psql9.6へのアップグレード後に機能しなくなりました
bkunzi01

31

これは私のために働いた

brew switch readline

これにより、インストールしたバージョンが表示されます。それらから1つを選択します。7.0.5を選びました

次に走った

brew switch readline 7.0.5

readlineのバージョンが更新され、psqlスムーズに実行されました。


2
また私のために働いた。psqlがロードしようとしましたlibreadline.7.dylibが、readline 8.0.0を使用していました。8.0.0から7.0.5に切り替えることで問題は解決しました。8.0.0を使い続けたい場合は、(他の人が行ったように)シンボリックリンクを作成することもできると思います。ただし、新しいバージョンを古いバージョンにリンクすると誤解を招き、他の問題が発生する可能性があります。
Dennis

どのようにしてこの解決策を見つけましたか?とても感動しました!
kuzdu

1
同じことを試しましたが、次のエラーが発生しました。readlineのセラーにバージョン「7.0.5」がありません。私は7.0.5のreadlineを醸造インストールしようとしたが、それは次のエラーを示しています。名前「7.0.5」で使用可能な式を@デニス。
マヘシュメスタ

23

これは私のために働いた

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

これも私の問題でした。私はbrewを使用せず、最新の更新後にsymリンクがありませんでした。ありがとう!
マット

いいね!私の正確なエラーは6.2について不平を言いました、私のコマンドは少し異なります。エラーがあったdyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylibので使用しましたln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.2.dylib
タイラーコリアー


14

問題は、readlineパッケージの更新にあるようです。私の場合、postgresは/usr/local/opt/readline/lib/libreadline.7.dylibを使用しようとしました。そのため、ライブラリ/usr/local/opt/readline/lib/libreadline.8.dylibの既存のバージョンへのシンボリックリンクを作成しました。

私のために働いた:

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

これでうまくいきました。私はpsqlバージョン9.6.3とreadline 8を使用しています
lacostenycoder '22

確かにこれは問題を修正するためのハックな方法ですが、無関係なアップグレードによってreadlineのバージョンが7から8にプッシュされたため、この問題に直面していました。Postgresの完全な再インストールは、今のところ取り組もうとしていませんでした。これは小さなフットプリントのソリューションであり、readlineに影響を与える何かが変更されるリスクは小さいと思われるので、今はこれで進めます。今後問題が発生する場合は、報告します。
スコットロス

コメントをありがとう、私はこの問題に同意します。macos catalinaに更新した後、私は多くの問題を抱えていたので、この問題を掘り下げたくなく、ハックを使用しました。
Eugeny Maksimov


6

上記の答えは私にはうまくいかなかったので、私は最終的に何がうまくいったかを投稿したいと思いました。私がここで見つけたスレッドに基づいて、私はreadlineをアンインストールして再度ソースからインストールする必要がありました。

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

その後、psqlエラーはなくなりました。


5

私にはこの問題があり、私にとっての鍵は reinstallの両方readlinepostgres。postgresを再インストールすると、問題は解決しました。


5

psqlを修正する別の方法はbrew upgrade postgresql、最新バージョンがreadline 7バージョンを使用するため、実行中のpostgresqlを更新 することです。


4

誤ってreadlineをバージョン7に更新すると、この問題が発生しました。readlineをアンインストールし、brewは6.3.8がまだインストールされていることを思い出させます。現時点では、バージョン7がPSQLで動作していないようです。


4

これらの端末コマンドをすべて試しましたが、何も機能しなかったため、手動で修正することにしました。

ファインダー 開きcommand + shift + gを押します

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

これらのファイルの複数のバージョンが表示されるはずです

libreadline.6.dylib
libreadline.7.0.dylib

ロードされていないライブラリに名前を変更する

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

私にとってはうまくいく
mike_dz

3

私はすべてのプレビューの回答を試しましたが、何もうまくいきませんでした。私にとって本当に効果的だったのは、

brew link postgresql


2

これは私を助けました:すべてのreadlineとpostgresqlをアンインストールします

エクスポートCPPFLAGS = -I / usr / local / opt / readline / includeエクスポートLDFLAGS = -L / usr / local / opt / readline / lib

そして、posqtgresqlをインストールします


2

次のコマンドは私のために働きました:

brew reinstall postgresql
brew postgresql-upgrade-database


0

あなたは試すことができます brew doctorそれが言うて見るます。

おそらく、必要なのは brew link --overwrite bashです。

私にとっては、OS X EL Capitanが私の/usrフォルダーに影響を与えるいくつかのセキュリティアップグレードを持っていたので、私はbrewをアップグレードしました。brewのアップグレード中に、bashリンクが壊れており、これがbrew doctor私に伝えています。

だから私はただ走ってbrew link --overwrite bash、すべてが大丈夫です。


0

他にシンボリックリンクされているものがあるかどうかを確認することをお勧めしpostgresqlます。以前にpostgres93パッケージにリンクしていましたが、これは2017年5月の時点でサポートされておらず、削除されています。そのリンクを削除してから再リンクするとうまくいきました:

brew unlink postgresql93
brew link postgresql

0

私の場合、正しい答えは問題を解決しませんでした。

問題は、実行して〜/ .zshrcファイルにbrew doctor追加export PATH="/usr/local/bin:$PATH"した後に始まりました。

除去

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

から~/.zshrcそれを解決しました。


0

なんらかの理由で、このエラーが次のバージョンのReadlineでポップアップしたとき、RVMは、どのようにシンボリックリンクしても、正しいものを見つけることができず、次のようにスローします。

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

結局、gem rb-readlineをGemfileに追加して別の処理を行うbundle installと、機能し始めました。

私は...わからない。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.