Biblioteca no cargada: /usr/local/opt/readline/lib/libreadline.6.2.dylib
Acabo de instalar posgresql con homebrew y cuando continúo a escribir el comando
psql
Obtuve el siguiente 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
¿Alguien tiene alguna idea de lo que está mal?
Recibí exactamente el mismo error, pero las respuestas anteriores no funcionaron para mí. Tuve que reinstalar postgresql.
brew reinstall postgresql
El problema clave es que su postgresql estaba tratando de encontrar la versión libreadline.6.2.dylib
, pero su readline
versión es 7.0
, por lo que solo la biblioteca de 7 está vinculada.
No creo que actualizar PostgreSQL sea una buena idea, no es fácil y puede causar muchos problemas, especialmente cuando ya tienes datos de base de datos.
Lo que hago es cambiar la versión de readline
. Cuando marcas brew info readline
, encontrarás diferentes versiones, la mía es 6.3.8
, así que cambio a esa versión ejecutando:
$ brew switch readline 6.3.8
Cambiará a 6.3.8 y creará el enlace:
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
En este caso, toda la biblioteca vinculada pasa a la versión 6 y la línea de comando funciona:
$ 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
Sin embargo, si tiene diferentes aplicaciones que utilizan diferentes versiones de readline, creo que debería considerar actualizar.
Actualización: 02/06/2019
¿Qué pasa si la versión anterior no está instalada?
Homebrew
no proporciona una forma de instalar la fórmula de la versión anterior. Y desde la versión 2.0.0, se ejecutará brew cleanup
como comportamiento predeterminado cada 30 días. Por lo tanto, puede actualizar brew
y eliminar accidentalmente la versión anterior.
Estos son los pasos para instalar la versión anterior:
- Ir al
homebrew-core
directorio:
$ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
- Verifique el hash de la fórmula anterior:
$ git log master -- Formula/readline.rb
- Encuentre la versión correspondiente del valor hash
commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date: Wed Aug 15 21:51:16 2018 +0000
readline: update 7.0.5 bottle.
- Pagar según la fórmula anterior:
$ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
- Reinstale la fórmula:
$ brew reinstall readline
- Restablecer el repositorio
Siguiendo esos pasos, puede reinstalar la versión anterior de fórmula.
Si la situación es que tiene una versión superior de readline, diga 7.0. Puedes hacerlo
cd /usr/local/opt/readline/lib
ln libreadline.7.0.dylib libreadline.6.2.dylib