Biblioteca no cargada: /usr/local/opt/readline/lib/libreadline.6.2.dylib

Resuelto hbejgel asked hace 10 años • 22 respuestas

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?

hbejgel avatar Feb 01 '14 02:02 hbejgel
Aceptado

Recibí exactamente el mismo error, pero las respuestas anteriores no funcionaron para mí. Tuve que reinstalar postgresql.

brew reinstall postgresql

dafunkeemonkee avatar Sep 29 '2016 23:09 dafunkeemonkee

El problema clave es que su postgresql estaba tratando de encontrar la versión libreadline.6.2.dylib, pero su readlineversió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?

Homebrewno proporciona una forma de instalar la fórmula de la versión anterior. Y desde la versión 2.0.0, se ejecutará brew cleanupcomo comportamiento predeterminado cada 30 días. Por lo tanto, puede actualizar brewy eliminar accidentalmente la versión anterior.

Estos son los pasos para instalar la versión anterior:

  1. Ir al homebrew-coredirectorio:
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
  1. Verifique el hash de la fórmula anterior:
    $ git log master -- Formula/readline.rb
  1. 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.
  1. Pagar según la fórmula anterior:
    $ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
  1. Reinstale la fórmula:
    $ brew reinstall readline
  1. Restablecer el repositorio

Siguiendo esos pasos, puede reinstalar la versión anterior de fórmula.

Stephen avatar Jan 05 '2017 02:01 Stephen

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
anvy zhang avatar Nov 11 '2016 07:11 anvy zhang