mac - ¿Volver a la versión 6.x de readline en Homebrew para corregir Postgresql?
postgresql instalar (6)
NOTA: Esta respuesta puede estar desactualizada debido a los cambios en la rama (como informó Andrew, la confirmación desaparece)
Para aquellos que aún enfrentan este problema pero no pueden descargar la línea de lectura 6.3.8 del paquete homebrew. Puedes probar esta solución. (Consulte desde here )
# Uninstall this incompatible version
brew uninstall readline
# Go to the local clone of homebrew-core
cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core
# Move to the homebrew-core revision that had 6.3.8
git checkout 35fed817726f61a9d40c8420582f6fde59eb5f14
# Re-install readline
brew reinstall readline
# Switch back to HEAD
git checkout master
# Pin readline so this can''t happen again
brew pin readline
No soy un experto en Homebrew, pero creo que me ha "actualizado" de la versión 6.line de readline 6.x a 7.0 en algún momento después del 9/15/16 :
eat@eric-macbook:Homebrew$ brew info readline
readline: stable 7.0 (bottled) [keg-only]
Library for command-line editing
https://tiswww.case.edu/php/chet/readline/rltop.html
/usr/local/Cellar/readline/7.0 (45 files, 2M)
Esto ha causado dolores de cabeza en mi versión Homebrew 9.4.5 de Postgresql (necesito la versión 9.4 anterior por razones de comparabilidad):
eat@eric-macbook:~$ psql --version
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /usr/local/Cellar/postgresql/9.4.5/bin/psql
Reason: image not found
Trace/BPT trap: 5
Desafortunadamente, no puedo encontrar una versión 6.x de readline en Homebrew para volver, solo 7.0 parece estar disponible (?).
Mi pregunta es doble:
- ¿La versión de readline no coincide con la causa de mi problema postgres / psql?
- Si es así, ¿cómo regreso a 6.x con Homebrew para corregir el problema?
¡Gracias de antemano!
Para las personas que vienen de Rails con este problema, simplemente puede agregar la gema readline y ejecutar la
bundle install
.
gem ''rb-readline'' #Fixed readline error
Para responder la pregunta específica.
Puede cambiar entre la versión de los paquetes de cerveza instalados que todavía están disponibles localmente como se explica en esta pregunta: ¿ Homebrew instala una versión específica de la fórmula?
Para degradar a readline 6.x, el siguiente comando funcionó para mí:
brew switch readline 6.3.8
Pude superar esto con una
brew upgrade
general (actualice todos los paquetes administrados por preparación).
Si usa la solución de Sam Kah Chiin, puede ignorar el 404.
Aplique el cambio adicional para que funcione en macOS nuevo:
diff --git a/Formula/readline.rb b/Formula/readline.rb
index 08d3728..d67e5e4 100644
--- a/Formula/readline.rb
+++ b/Formula/readline.rb
@@ -16,7 +16,7 @@ class Readline < Formula
sha256 "c129333634dd00ab2267ae9c531fca1f5cc50dd519ed3399918289fdfdf2663b" => :lion
end
- keg_only :shadowed_by_osx, <<-EOS.undent
+ keg_only :shadowed_by_macos, <<~EOS
OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.
Haga
sudo update_dyld_shared_cache
al final
Simplemente reinstale el paquete
postgresql94
, PostgreSQL 9.4 usará el nuevo paquete
readline
:
brew reinstall postgresql94