Не могу запустить команду 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

от: https://github.com/Homebrew/homebrew-core/issues/5799

Ответ выше не работал для меня, поэтому я хотел опубликовать то, что в итоге сработало. Основываясь на теме, которую я нашел здесь, мне пришлось удалить 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 upgrade bash

https://github.com/Homebrew/homebrew-core/issues/5799

Вы могли бы попробовать 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 понял это.

Другие вопросы по тегам