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
誰が何が間違っているのか考えていますか?
私はまったく同じエラーを受け取っていましたが、上記の答えはうまくいきませんでした。 postgresqlを再インストールする必要がありました。
brew reinstall postgresql
重要な問題は、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
を更新し、古いバージョンを削除する可能性があります。
古いバージョンをインストールする手順は次のとおりです。
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
これらの手順に従って、古いバージョンの式を再インストールできます。
状況がより高いバージョンのreadline 7.0を使用している場合。あなたはこれを行うことができます
cd /usr/local/opt/readline/lib
ln libreadline.7.0.dylib libreadline.6.2.dylib
Readlineをインストールしていない場合は、最初にインストールしてください:
brew install readline
私にとっては、readlineがインストールされていても、このエラーが発生していました。 readlineを再インストールするとうまくいきました:
brew reinstall readline
これは私のために働いた
brew switch readline
これにより、インストールしたバージョンが表示されます。それらから1つを選択します。 7.0.5を選びました
それから走りました
brew switch readline 7.0.5
Readlineバージョンが更新され、psql
がスムーズに実行されました。
解決策は、readlineのリンクを再度強制することです。
brew remove readline
brew install readline
brew link readline --force
これは私のために働いた
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
これらのソリューションはどれも私にとってはうまくいきませんでした。私は走らなければならなかった:
brew upgrade bash
上記の答えは私にはうまくいきませんでしたので、最終的にはうまくいったことを投稿したいと思いました。私が見つけたスレッドに基づいて here 、readlineをアンインストールし、ソースから再度インストールする必要がありました。
brew uninstall readline
brew install --build-from-source readline
その後、psqlエラーはなくなりました。
問題は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
私はこの問題を抱えており、私にとっての鍵はreinstall
とreadline
とpostgres
の両方でした。 postgresを再インストールすると、問題は解決しました。
誤ってreadlineをバージョン7に更新したときに、この問題が発生しました。 readlineをアンインストールし、brewは6.3.8がまだインストールされていることを思い出させます。現在、バージョン7はPSQLで動作していないようです。
Psqlを修正する別の方法は、最新バージョンがreadline 7バージョンを使用するので、brew upgrade postgresql
を実行するだけでpostgresqlを更新することです。
これらのターミナルコマンドをすべて試してみましたが、何も機能しなかったため、手動で修正することにしました。
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
これは私を助けていました:すべてのreadlineとpostgresqlをアンインストールします
export CPPFLAGS = -I/usr/local/opt/readline/include export LDFLAGS = -L/usr/local/opt/readline/lib
posqtgresqlをインストールします
プレビューの回答をすべて試しましたが、何も機能しませんでした。私のために本当に働いた唯一のものは:
brew link postgresql
私の場合、正しい答えは問題を解決しませんでした。
この問題は、brew doctor
を実行し、export PATH="/usr/local/bin:$PATH"
を〜/ .zshrcファイルに追加した後に始まりました。
取りはずし
export PATH="/usr/local/bin:$PATH"
~/.zshrc
から解決しました。
何らかの理由で、このエラーが次のバージョンのReadlineでポップアップ表示されたとき、RVMはシンボリックリンクを設定しても正しいものを見つけることができなかったようです。
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
最終的にgem rb-readline
をGemfileに追加し、別のbundle install
を実行して、動作を開始しました。
私は...ただ分からない。
brew doctor
を試してみて、何が書かれているかを確認してください。
おそらく必要なのはbrew link --overwrite bash
だけです。
私にとっては、OS X EL Capitanが/usr
フォルダーに影響するセキュリティアップグレードを行っていたので、brewをアップグレードしました。醸造のアップグレード中に、bashリンクが切断されます。これがbrew doctor
が示していることです。
だから、brew link --overwrite bash
を実行するだけで問題ありません。
postgresql
にシンボリックリンクされているものがあるかどうかを確認することをお勧めします。以前に postgres9 パッケージにリンクしていましたが、17年5月現在、サポートされていないため削除されました。そのリンクを削除してから再リンクすると、私のために働いた:
brew unlink postgresql93
brew link postgresql