Estoy trabajando en una Mac, Sierra 10.12.3, y estoy tratando de acceder a una base de datos PostgreSQL a través del comando psql , pero arrojó el error
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib Referenced from: /usr/local/bin/psql Reason: image not found Abort trap: 6 Hace uno o dos días, estaba trabajando con alguien y necesitaba instalar pip, así que ejecuté brew install pip y todo estuvo bien. Esta es la primera vez que intento ejecutar psql desde entonces y no estoy seguro de que esto tenga algo que ver con mi problema, pero parece probable ya que no he realizado ningún otro cambio.
Ahora hice un poco de trabajo de detective y descubrí que si iba a /usr/local/opt/ había un directorio de alias de readline que apuntaba a /usr/local/Cellar/readline/7.0.1 (la versión 7.0.1 también parecía haber sido instalado en algún momento, ¿tal vez como parte de pip? Tal vez lo hice por error ...) por lo que tenía sentido que se lanzara el error original. Cambié el alias para que apuntara a /usr/local/Cellar/readline/6.3.8 y el error cambió ligeramente:
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib Referenced from: /usr/local/bin/psql Reason: no suitable image found. Did find: /usr/local/opt/readline/lib/libreadline.6.dylib: stat() failed with errno=20 Abort trap: 6Así que parece que estoy llegando a alguna parte , pero sigo teniendo un problema. Si alguien puede arrojar algo de luz sobre una solución, se lo agradecería eternamente.
Pude resolver esto simplemente ejecutando brew switch readline 6.3.8
Readline se ha actualizado, pero todavía está utilizando un psql anterior de postgres. Actualizar postgres a una versión actual que usa la línea de lectura actual me solucionó el problema:
brew upgrade postgres
Después de ejecutar brew upgrade , también tuve este problema.
Primero, debe confirmar la versión de readline en su Mac.
En su situación, la versión anterior de su línea de lectura es 6.x. Después de la actualización, su línea de lectura se actualizó a 7.0.1. Por lo tanto, debe vincular su nueva línea de lectura.
Estos códigos pueden ser útiles.
$ cd /usr/local/opt/readline/lib/ # cd to readline library $ sudo ln -s libreadline.7.dylib libreadline.6.dylib # change the linkCreo que la mejor manera es cambiar el enlace de línea de lectura del sistema, pero no sé cómo cambiar.