可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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 different version of readline, I think you should consider upgrading.
回答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:
The solution is to force the linking of readline again.
brew remove readline
brew install readline
brew link readline --force
回答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:
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.
回答8:
None of those solutions worked for me; I had to run :
brew upgrade bash
from : https://github.com/Homebrew/homebrew-core/issues/5799
回答9:
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.
回答10:
I had this issue, and the key for me was to reinstall
both readline
and postgres
. Once postgres was reinstalled, the issue was resolved.
回答11:
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.
回答12:
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
回答13:
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
回答14:
Another way to fix psql is update postgresql just running
brew upgrade postgresql
since the newest version will use readline 7 version.
回答15:
I found this solution helpful
brew upgrade bash
https://github.com/Homebrew/homebrew-core/issues/5799
回答16:
I tried all the previews answers, and nothing worked. The only thing that really worked for me was:
brew link postgresql
回答17:
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.
回答18:
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
回答19:
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.
回答20:
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.