web-dev-qa-db-ja.com

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

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

誰が何が間違っているのか考えていますか?

189
hbejgel

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

brew reinstall postgresql

309
dafunkeemonkee

重要な問題は、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

この場合、リンクされたライブラリはすべて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以降、30日ごとにbrew cleanupをデフォルトの動作として実行します。したがって、誤ってbrewを更新し、古いバージョンを削除する可能性があります。

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

  1. homebrew-coreディレクトリに移動します。
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
  1. 古い数式のハッシュを確認します。
    $ git log master -- Formula/readline.rb
  1. ハッシュ値の対応するバージョンを見つける
    commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
    Author: BrewTestBot <[email protected]>
    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. リポジトリをリセットする

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

111
Stephen

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

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

Readlineをインストールしていない場合は、最初にインストールしてください:

brew install readline

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

brew reinstall readline
45
Troy

これは私のために働いた

brew switch readline

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

それから走りました

brew switch readline 7.0.5

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

26
sindhu_sp

解決策は、readlineのリンクを再度強制することです。

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

これは私のために働いた

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

これらのソリューションはどれも私にとってはうまくいきませんでした。私は走らなければならなかった:

brew upgrade bash

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

8
Anthony Dahanne

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

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

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

6
Mark Pruce

問題は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

私はこの問題を抱えており、私にとっての鍵はreinstallreadlinepostgresの両方でした。 postgresを再インストールすると、問題は解決しました。

5
Micah Bales

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

4
Yuanqi Cao

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

3
zegomesjf

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

Open Finderand hitcommand + 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
3
Priince Abalogu

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

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

posqtgresqlをインストールします

2
ph4n70m

プレビューの回答をすべて試しましたが、何も機能しませんでした。私のために本当に働いた唯一のものは:

brew link postgresql

2
finx

この解決策が役立った

brew upgrade bash

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

1
Tornike

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

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

取りはずし

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

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

0
user1183098

何らかの理由で、このエラーが次のバージョンのReadlineでポップアップ表示されたとき、RVMはシンボリックリンクを設定しても正しいものを見つけることができなかったようです。

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

最終的にgem rb-readlineをGemfileに追加し、別のbundle installを実行して、動作を開始しました。

私は...ただ分からない。

0
Erik Trautman

brew doctorを試してみて、何が書かれているかを確認してください。

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

私にとっては、OS X EL Capitanが/usrフォルダーに影響するセキュリティアップグレードを行っていたので、brewをアップグレードしました。醸造のアップグレード中に、bashリンクが切断されます。これがbrew doctorが示していることです。

だから、brew link --overwrite bashを実行するだけで問題ありません。

0
Hustlion

postgresqlにシンボリックリンクされているものがあるかどうかを確認することをお勧めします。以前に postgres9 パッケージにリンクしていましたが、17年5月現在、サポートされていないため削除されました。そのリンクを削除してから再リンクすると、私のために働いた:

brew unlink postgresql93
brew link postgresql
0
sp89