Ответ 1
Я получал ту же ошибку, но приведенные выше ответы не сработали для меня. Мне пришлось переустановить postgresql.
brew reinstall postgresql
Я только что установил 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
Есть ли у кого-нибудь представление о том, что неправильно?
Я получал ту же ошибку, но приведенные выше ответы не сработали для меня. Мне пришлось переустановить postgresql.
brew reinstall postgresql
Ключевая проблема заключается в том, что ваш postgresql пытался найти libreadline.6.2.dylib
но ваша readline
- версия 7.0
, так что связана только 7 lib.
Я не думаю, что обновление 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, я думаю, вам стоит подумать об обновлении.
Обновление: 02/02/2019
Что если старая версия не установлена?
Homebrew
не предоставляет способ установить старую формулу версии. А начиная с версии 2.0.0 он будет запускать brew cleanup
качестве поведения по умолчанию каждые 30 дней. Поэтому вы можете случайно обновить brew
и удалить старую версию.
Вот шаги для установки старой версии:
homebrew-core
: $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
$ git log master -- Formula/readline.rb
commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
Author: BrewTestBot <[email protected]>
Date: Wed Aug 15 21:51:16 2018 +0000
readline: update 7.0.5 bottle.
$ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
$ brew reinstall readline
Следуя этим шагам, вы можете переустановить старую версию формулы.
Если ситуация у вас выше, читайте readline 7.0. Вы можете сделать это
cd /usr/local/opt/readline/lib
ln libreadline.7.0.dylib libreadline.6.2.dylib
Если у вас нет установленной линии чтения, сначала установите ее:
brew install readline
Для меня я получал эту ошибку, даже если у меня установлен readline. Повторная установка readline сделала трюк:
brew reinstall readline
Это сработало для меня
brew switch readline
Это будет отображать версии, которые вы установили. Выберите один из них. Я выбрал 7.0.5
Я тогда побежал
brew switch readline 7.0.5
Версия readline была обновлена, и psql
работал гладко.
Решение состоит в том, чтобы снова принудительно связать линию чтения.
brew remove readline
brew install readline
brew link readline --force
это сработало для меня
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
Ни один из этих решений не работал у меня; Мне пришлось бежать:
brew upgrade bash
Ответ выше не работал для меня, поэтому я хотел опубликовать то, что в итоге сработало. Основываясь на теме, которую я нашел здесь, мне пришлось удалить readline и установить его снова, но из исходного кода.
brew uninstall readline
brew install --build-from-source readline
После этого ошибка psql ушла.
У меня была эта проблема, и ключ для меня был reinstall
как readline
, так и postgres
. После того, как postgres был переустановлен, проблема была решена.
Мне кажется, проблема в обновлении пакета 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
У меня была эта проблема, когда я обновил readline до версии 7 случайно. Я удалил readline и brew напомнил мне, что 6.3.8 все еще установлен. Кажется, что версия 7 не работает с PSQL на данный момент.
Я пробовал все эти команды терминала и ничего не работал, поэтому решил исправить его вручную.
Открыть поиск и нажать команда + 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
Еще один способ исправить psql - это обновление postgresql
brew upgrade postgresql
, так как новая версия будет использовать версию readline 7.
Это помогло мне: удалите все readline и postgresql
export CPPFLAGS = -I/usr/local/opt/readline/include экспортировать LDFLAGS = -L/usr/local/opt/readline/lib
и установите posqtgresql
Я нашел это решение полезным
brew upgrade bash
Я попробовал все предварительные ответы, и ничего не получилось. Единственное, что действительно сработало для меня, было:
brew link postgresql
Вы можете попробовать brew doctor
и посмотреть, что он говорит.
Возможно, вам нужно всего лишь brew link --overwrite bash
.
Для меня я только что обновил brew, так как у OS X EL Capitan было некоторое обновление безопасности, которое обменивает мою папку /usr
. Во время обновления brew ссылка bash сломана, и это то, что говорит brew doctor
.
Итак, я просто запускаю brew link --overwrite bash
и все в порядке.
Возможно, вы захотите проверить, есть ли что-нибудь еще, связанное с 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
получил это решено.
По какой-то неизвестной причине, когда эта ошибка появилась для следующей версии Readline, мой RVM, казалось, был не в состоянии найти нужный, независимо от того, как я его символизировал, выдавая:
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib(LoadError)
В итоге я добавил gem rb-readline
в свой Gemfile и выполнил другую bundle install
и он начал работать.
Я... просто не знаю.