Ответ 1
Я смог решить это, просто запустив brew switch readline 6.3.8
Я работаю над Mac, Sierra 10.12.3, и я пытаюсь получить доступ к базе данных PostgreSQL с помощью команды psql
, но она выбрала ошибку
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
Abort trap: 6
День или два назад, я работал с кем-то, и мне нужно было установить pip, поэтому я побежал brew install pip
, и все было хорошо. Это первый раз, когда я пытаюсь запустить psql
с тех пор, и я не уверен, что это имеет какое-то отношение к моей проблеме, но это кажется вероятным, поскольку я не сделал никаких других изменений.
Теперь я сделал небольшую детективную работу и обнаружил, что если бы я пошел в /usr/local/opt/
, действительно был каталог readline
alias, который указывал на /usr/local/Cellar/readline/7.0.1
(версия 7.0.1 также, похоже, была установлена в какой-то момент - может быть, как часть пипса? Возможно, я сделал это по ошибке...), поэтому было несколько причин, по которым должна быть выбрана оригинальная ошибка. Я изменил псевдоним, указав на /usr/local/Cellar/readline/6.3.8
, и ошибка слегка изменилась:
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /usr/local/bin/psql
Reason: no suitable image found. Did find:
/usr/local/opt/readline/lib/libreadline.6.dylib: stat() failed with errno=20
Abort trap: 6
Так кажется, что я куда-то попадаю, но все еще имею проблему. Если кто-то может пролить свет на решение, я буду навсегда благодарен.
Я смог решить это, просто запустив brew switch readline 6.3.8
После запуска brew upgrade
меня тоже была эта проблема.
Во-первых, вам нужно подтвердить версию readline
на вашем Mac.
В вашей ситуации ваша старая версия readline - 6.x. После обновления ваша readline была обновлена до 7.0.1. Так что вам нужно связать свой новый readline.
Этот код может быть полезным.
$ cd /usr/local/opt/readline/lib/ # cd to readline library
$ sudo ln -s libreadline.7.dylib libreadline.6.dylib # change the link
Я думаю, что лучший способ - это изменить ссылку readline системы, но я не знаю, как это изменить.
Readline был обновлен, но вы все еще используете более старую версию psql от postgres. Обновление postgres до текущей версии, использующей текущую readline, решило проблему для меня:
brew upgrade postgres