Instalé el nodo usando homebrew (Mojave), luego php dejó de funcionar y si intento ejecutar php -vme 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 upgradeactualizará todos sus paquetes anticuados, en cambio, probablemente solo lo hagabrew upgrade npmo 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
versionestá la versión instalada devuelta porinfofuente
brew list icu4cmostró un archivo de/usr/local/Cellar/icu4c/63.1.brew switch icu4c 63.1me lo arreglóbrew switch icu4c 63.1pero 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 postgresy 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
icu4cque es necesario y obtener la versión cruda del archivo (siga los enlaces de arriba y haga clicView Filea 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.1en primer lugar , no funciona para usted.dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylibeste comando lo solucionó:brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rbbrew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rbResulta que yo, como @Grey Black, tuve que instalar realmente la v62.1 de icu4c. Nada más funcionó.
Sin embargo,
brew switch icu4c 62.1solo 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 --unshallowbrew log icu4crastrear un commit que hace referencia a 62.1;575eb4bHace el truco.cd $(brew --repo homebrew/core)git checkout 575eb4b -- Formula/icu4c.rbbrew uninstall --ignore-dependencies icu4cbrew 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 --unshallowpara 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.rby luegobrew switch 63.1Tuve el mismo problema después de actualizar mi
macOSversión10.13.6. No puedo corrercomposeryphpcomandos. Después de investigar por un tiempo y probar varias soluciones publicadas en línea, reinstalar php usandohomebrewtrabajado.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 -vy obtenga las fórmulas correctas (que puede encontrar aquí: https://formulae.brew.sh/formula/php ) para reemplazar@7.1en el comando anterior.fuente
nodedespués de actualizar macOS10.14.2,brew reinstall nodefue el boleto para mí tambiénbrew upgradearregló para mí.brew reinstall phppuede terminar instalando una versión diferente a la actual. Puede que tenga que especificar la versión usando[email protected]php -vsi 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 versiony 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 phpybrew install phpno funcionó, ni lo hizobrew reinstall php. Mi solución fue hacer:Ahora
php -vme da:fuente
Parece que es imposible vincular
icu4cusandobrewdespué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í:icu4c62.1 a/usr/local/icu4c/62.1DYLD_LIBRARY_PATHen~/.bash_profile:fuente
En MacOS Mojave, la única forma en que pude arreglarlo fue con
brew upgradefuente
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 nodejssolucioné 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 losnpmcomandos.fuente
brew update && brew upgradetrabajó para mifuente
Esto es lo que finalmente funcionó para mí.
brew reinstall postgresDespués de ejecutar el comando anterior, es posible que deba ejecutar
brew postgresql-upgrade-databasepara acceder a sus datos anteriores.
fuente
En lugar de instalar una versión anterior de la
icu4cque 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í
reinstallque 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.1Sin 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 --installsolucionó 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