问题
I just installed posgresql with homebrew and when I go on to type the command
psql
I get the following error:
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
Does anyone have any idea about what's wrong?
回答1:
I was getting the exact same error, but the above answers didn't work for me. I had to reinstall postgresql.
brew reinstall postgresql
回答2:
The key problem is that your postgresql was trying to find the libreadline.6.2.dylib
but your readline
is version 7.0
, so only 7's lib is linked.
I don't think upgrading postgresql is a good idea, it's not easy and may cause a lot of problem, especially when you already have database data.
What I do, is to switch the version of readline
. When you check brew info readline
, you will find different versions, mine is 6.3.8
, so I switch to that version by executing:
$ brew switch readline 6.3.8
It will change to 6.3.8 and create the 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 this case, all the linked lib becomes to 6 version, and command line works:
$ 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
However, if you have different apps using the different version of readline, I think you should consider upgrading.
Update: 06/02/2019
What if the old version is not installed?
Homebrew
doesn't provide a way to install old version formula. And since v2.0.0, it will run brew cleanup
as default behaviours every 30 days. Therefore, you may accidentally update brew
and delete the old version.
Here are the steps to install old version:
- Go to
homebrew-core
directory:
$ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
- Check the hash for old Formula:
$ git log master -- Formula/readline.rb
- Find the corresponding version of the hash value
commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date: Wed Aug 15 21:51:16 2018 +0000
readline: update 7.0.5 bottle.
- Checkout to old formula:
$ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
- Reinstall the formula:
$ brew reinstall readline
- Reset the repo
Following those steps, you can reinstall the old version of formula.
回答3:
If the situation is you have a higher version readline say 7.0. You can do this
cd /usr/local/opt/readline/lib
ln libreadline.7.0.dylib libreadline.6.2.dylib
回答4:
If you don't have readline installed, first install it:
brew install readline
For me, I was getting this error, even though I had readline installed. Reinstalling readline did the trick:
brew reinstall readline
回答5:
This worked for me
brew switch readline
This would display the versions you have installed. Pick one out of them. I picked 7.0.5
I then ran
brew switch readline 7.0.5
The readline version got updated, and psql
ran smoothly.
回答6:
this worked for me
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
回答7:
The solution is to force the linking of readline again.
brew remove readline
brew install readline
brew link readline --force
回答8:
It seems to me the problem is about update readline package. postgres tryied to use /usr/local/opt/readline/lib/libreadline.7.dylib in my case. So i just created a symlink to existing version of library /usr/local/opt/readline/lib/libreadline.8.dylib.
worked for me:
ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
回答9:
None of those solutions worked for me; I had to run :
brew upgrade bash
from : https://github.com/Homebrew/homebrew-core/issues/5799
回答10:
The answer above didn't work for me so I wanted to post what did eventually work. Based on a thread I found here, I had to uninstall readline and the install it again but from source.
brew uninstall readline
brew install --build-from-source readline
After that the psql error went away.
回答11:
I had this issue, and the key for me was to reinstall
both readline
and postgres
. Once postgres was reinstalled, the issue was resolved.
回答12:
I had this problem when I updated readline to version 7 by accident. I uninstalled readline and brew remind me 6.3.8 is still installed. It seems that version 7 is not working with PSQL at the moment.
回答13:
I tried all these terminal commands and nothing worked so decided to fix it manually..
Open finder and hit command+shift+g
Go to this folder /usr/local/opt/readline/lib/
you should see multiple versions of these files
libreadline.6.dylib
libreadline.7.0.dylib
rename any of them to whichever library is not loaded
this is: /usr/local/opt/readline/lib/libreadline.6.2.dylib
mine was: /usr/local/opt/readline/lib/libreadline.6.dylib
回答14:
Another way to fix psql is update postgresql just running
brew upgrade postgresql
since the newest version will use readline 7 version.
回答15:
This had helped me: uninstall all readline and postgresql
export CPPFLAGS=-I/usr/local/opt/readline/include export LDFLAGS=-L/usr/local/opt/readline/lib
and install posqtgresql
回答16:
I tried all the previews answers, and nothing worked. The only thing that really worked for me was:
brew link postgresql
回答17:
I found this solution helpful
brew upgrade bash
https://github.com/Homebrew/homebrew-core/issues/5799
回答18:
You could try brew doctor
and see what it says.
Possibly all you need is brew link --overwrite bash
.
For me, I just upgraded brew since OS X EL Capitan had some security upgrade that affetcs my /usr
folder. During the brew upgrade, the bash link is broken, and this is what brew doctor
tells me.
So I just run brew link --overwrite bash
and everything's fine.
回答19:
You might want to check if you have anything else symlinked to postgresql
. I had previously linked to the postgres93 package, which, as of May '17, is unsupported and has been removed. Removing that link and then relinking worked for me:
brew unlink postgresql93
brew link postgresql
回答20:
In my case the correct answer did not fix the problem.
The problem started after running brew doctor
and adding export PATH="/usr/local/bin:$PATH"
to my ~/.zshrc file.
Removing
export PATH="/usr/local/bin:$PATH"
from ~/.zshrc
got it solved.
回答21:
For some unknown reason, when this error popped up for the next version of Readline, my RVM seemed unable to locate the right one no matter how I symlinked it, throwing:
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
I ended up adding the gem rb-readline
to my Gemfile and doing another bundle install
and it started working.
I... just don't know.
来源:https://stackoverflow.com/questions/21488778/library-not-loaded-usr-local-opt-readline-lib-libreadline-6-2-dylib