Не могу запустить команду psql, постоянно получаю ту же ошибку
Я только что установил posgresql с homebrew, и когда я продолжаю набирать команду
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
Кто-нибудь имеет представление о том, что не так?
19 ответов
Я получал точно такую же ошибку, но приведенные выше ответы не сработали для меня. Мне пришлось переустановить postgresql.
brew reinstall postgresql
Ключевая проблема в том, что ваш postgresql пытался найти libreadline.6.2.dylib
но твой readline
версия 7.0
, так что только 7-я библиотека связана.
Я не думаю, что обновление 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, я думаю, вам стоит подумать об обновлении.
Если ситуация такова, вы читаете версию выше, скажем 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
Это будет отображать версии, которые вы установили. Выберите один из них. Я выбрал 7.0.5
Я тогда побежал
brew switch readline 7.0.5
Версия readline была обновлена, и psql
бежал гладко.
Это сработало для меня
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
Решение состоит в том, чтобы снова заставить ссылку readline.
brew remove readline
brew install readline
brew link readline --force
Мне кажется, проблема в обновлении пакета 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
Ни одно из этих решений не помогло мне; Я должен был бежать:
brew upgrade bash
Ответ выше не работал для меня, поэтому я хотел опубликовать то, что в итоге сработало. Основываясь на теме, которую я нашел здесь, мне пришлось удалить readline и установить его снова, но из исходного кода.
brew uninstall readline
brew install --build-from-source readline
После этого ошибка psql ушла.
У меня была эта проблема, и ключом для меня было reinstall
и то и другое readline
а также postgres
, После переустановки postgres проблема была решена.
Еще один способ исправить psql - просто запустить обновление postgresqlbrew upgrade postgresql
так как самая новая версия будет использовать версию readline 7.
У меня была эта проблема, когда я случайно обновил readline до версии 7. Я удалил readline и brew напоминает мне, что 6.3.8 все еще установлен. Кажется, что версия 7 не работает с PSQL в настоящее время.
Я попробовал все эти команды терминала, и ничего не получилось, поэтому решил исправить это вручную..
Откройте искатель и нажмите Ctrl + 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
У меня работали следующие команды:
brew reinstall postgresql
brew postgresql-upgrade-database
Я перепробовал все предварительные ответы, и ничего не получалось. Единственное, что действительно сработало для меня, было:
brew link postgresql
Это помогло мне: удалите все readline и postgresql
экспорт CPPFLAGS=-I/usr/local/opt/readline/ включить экспорт LDFLAGS=-L/usr/local/opt/readline/lib
и установите posqtgresql
Вы могли бы попробовать brew doctor
и посмотрим, что там написано.
Возможно, все, что вам нужно, это brew link --overwrite bash
,
Для меня, я только что обновил brew, так как в OS X EL Capitan было какое-то обновление безопасности, которое мешает моему /usr
папка. Во время обновления brew ссылка на bash не работает, и вот что brew doctor
говорит мне.
Так что я просто бегу brew link --overwrite bash
и все хорошо.
По какой-то неизвестной причине, когда эта ошибка появилась для следующей версии Readline, мой RVM, казалось, был не в состоянии найти нужный, независимо от того, как я его символизировал, выдавая:
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
Я закончил тем, что добавил драгоценный камень rb-readline
в мой Gemfile и делать другое bundle install
и это начало работать.
Я... просто не знаю.
Вы можете проверить, есть ли у вас что-нибудь еще postgresql
, Ранее я связывался с пакетом postgres93, который по состоянию на май 17 года не поддерживается и был удален. Удаление этой ссылки, а затем перекомпоновка работали для меня:
brew unlink postgresql93
brew link postgresql
В моем случае правильный ответ не решил проблему.
Проблема началась после запуска brew doctor
и добавление export PATH="/usr/local/bin:$PATH"
в мой файл ~/.zshrc.
Удаление
export PATH="/usr/local/bin:$PATH"
от ~/.zshrc
понял это.