Instalé el nodo usando homebrew (Mojave), luego php dejó de funcionar y si intento ejecutar php -v
me sale este error:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Traté de desinstalar tanto el nodo como icu4c pero el problema persiste
Respuestas:
Acabo de tener este mismo problema. Actualizar Homebrew y luego limpiar me funcionó. Este error probablemente apareció por mí debido a una falta de coincidencia en las versiones del paquete. Ninguna de las soluciones anteriores resolvió mi error, pero al ejecutar los siguientes comandos homebrew sí.
y entonces
fuente
brew upgrade
actualizará todos sus paquetes anticuados, en cambio, probablemente solo lo hagabrew upgrade npm
o un paquete específico, no todos.En mi caso, eso sucedió porque icu4c se actualizó a la versión 63 pero mi imagen de postgres instalada localmente todavía hacía referencia a icu4c 62.1. Por lo tanto, tuve que cambiar la versión icu4c utilizada:
¿Dónde
version
está la versión instalada devuelta porinfo
fuente
brew list icu4c
mostró un archivo de/usr/local/Cellar/icu4c/63.1
.brew switch icu4c 63.1
me lo arreglóbrew switch icu4c 63.1
pero aún obtengo el mismo error en los registros, incluso después de reiniciar postgres. No estoy seguro de qué hacer a continuación ...brew reinstall postgres
y eso pareció resolver mis problemasicu4c 61.1
.63.1
- no resolver.62.1
- extraviado.De hecho, estoy bastante sorprendido de que esta solución aún no se haya presentado, y creo que es la solución más fácil.
Ir a GitHub, encontrar la versión del brewfile que coincide con la versión de
icu4c
que es necesario y obtener la versión cruda del archivo (siga los enlaces de arriba y haga clicView File
a continuaciónRaw
).Luego solo tiene que volver a instalar brew desde esa url.
Por ejemplo, versión
62.1
:Por ejemplo, versión
64.2
:fuente
brew switch icu4c 62.1
en primer lugar , no funciona para usted.dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
este comando lo solucionó:brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
Resulta que yo, como @Grey Black, tuve que instalar realmente la v62.1 de icu4c. Nada más funcionó.
Sin embargo,
brew switch icu4c 62.1
solo funciona si ha instalado 62.1 en el pasado. Si no lo has hecho, hay más trabajo de campo involucrado. Homebrew no facilita la instalación de versiones anteriores de fórmulas.Así es como lo hice:
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
rastrear un commit que hace referencia a 62.1;575eb4b
Hace el truco.cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
¡Ahora debería tener la versión correcta de la dependencia! Ahora solo para ...git reset && git checkout .
Limpia tu receta modificada.fuente
brew log icu4c
, solo hay 3-4 resultados. Ninguno menciona 62.1. El hash que usas arriba tampoco funciona. ¿Han eliminado 62?git -C (brew --repo homebrew/core) fetch --unshallow
para asegurarse de tener un historial completo de preparación de git.icu4c
. Ni la actualización, la actualización funcionó, ni la reinstalación, la vinculación, la creación de php desde la fuente.git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb
y luegobrew switch 63.1
Tuve el mismo problema después de actualizar mi
macOS
versión10.13.6
. No puedo corrercomposer
yphp
comandos. Después de investigar por un tiempo y probar varias soluciones publicadas en línea, reinstalar php usandohomebrew
trabajado.brew reinstall [email protected]
Agregado el 14 de marzo basado en el comentario de Ryan
obtenga la versión que está utilizando actualmente ejecutando
php -v
y obtenga las fórmulas correctas (que puede encontrar aquí: https://formulae.brew.sh/formula/php ) para reemplazar@7.1
en el comando anterior.fuente
node
después de actualizar macOS10.14.2
,brew reinstall node
fue el boleto para mí tambiénbrew upgrade
arregló para mí.brew reinstall php
puede terminar instalando una versión diferente a la actual. Puede que tenga que especificar la versión usando[email protected]
php -v
si su php está roto: pecho $PATH
(si tienephp
, debería ver algo como esto/usr/local/opt/[email protected]/bin
) : esta es una forma de averiguar qué versiones se están utilizando actualmente.Ejecute
npm version
y vea si ve el mismo error.Si es así, actualice su versión npm
brew upgrade npm
.Créditos
fuente
Esto me lo arregló:
fuente
Justo
brew remove php
ybrew install php
no funcionó, ni lo hizobrew reinstall php
. Mi solución fue hacer:Ahora
php -v
me da:fuente
Parece que es imposible vincular
icu4c
usandobrew
después de la última actualización de OS X. Lo que hace las cosas más interesantes. La única solución que encontré trabajando para mí:icu4c
62.1 a/usr/local/icu4c/62.1
DYLD_LIBRARY_PATH
en~/.bash_profile
:fuente
En MacOS Mojave, la única forma en que pude arreglarlo fue con
brew upgrade
fuente
Tuve problemas porque mi versión de PHP (7.3) esperaba icu4c 63 y brew solo instalaría 64.
https://stackoverflow.com/a/55828190/2000947 me ayudó a instalar 63.
fuente
Para mí
brew reinstall nodejs
solucioné esto: mi problema era ejecutar Elixir / Phoenix, así que no era específico de PHP, creo que fue causado porbrew install postgres
, pero reinstalar eso no ayudó. Lo estaba obteniendo de losnpm
comandos.fuente
brew update && brew upgrade
trabajó para mifuente
Esto es lo que finalmente funcionó para mí.
brew reinstall postgres
Después de ejecutar el comando anterior, es posible que deba ejecutar
brew postgresql-upgrade-database
para acceder a sus datos anteriores.
fuente
En lugar de instalar una versión anterior de la
icu4c
que puede vincular el php anterior (precompilado), es mejor recompilar el php antiguo para vincularlo a la biblioteca más reciente.Esto generará php y lo vinculará a la biblioteca más nueva. Descubrí
reinstall
que no funcionaba del todo; la nueva instalación se bloqueó cuando la carpeta de destino ya existía.También lo hice
brew link --force [email protected]
por mi entorno.fuente
brew switch icu4c 62.1
Sin embargo, el comando de Gray Black funcionó para mí.La respuesta de Leland funcionó para mí, pero tuve que cambiar los pasos 4 y 6 para:
4) git checkout -B icu4c-62.1 575eb4b
6) preparar reinstalar Formula / icu4c.rb
fuente
Para degradar, tuve que volver a compilar desde la fuente (MacOS Mojave)
fuente
Seguí este artículo aquí y esta parece ser la pieza faltante del rompecabezas para mí:
fuente
En OSX 10.15.4 en ejecución
xcode-select --install
solucionó el problema para mí.fuente
También obtuve este error después de instalar php 7.3. Lo resolví actualizando solo las versiones anteriores de mi php (5.6 y 7.0, no desde los repositorios oficiales).
Los mantenedores habían compilado nuevas versiones de php contra el icu4c actual.
En mi caso, PHP 7 pasó de 0,31 a 0,33, y el problema se resolvió.
fuente
La solución en esta esencia lo hizo por mí
fuente
en mi caso, reinstalo todos los paquetes instalados con Homebrew
Después de eso, empiezo a instalar mi versión que necesito
fuente