template - dyld: Biblioteca no cargada:/usr/local/opt/icu4c/lib/libicui18n.62.dylib error al ejecutar php después de instalar el nodo con brew en Mac
remove node js mac sierra (12)
Instalé el nodo usando homebrew (Mojave), luego php dejó de funcionar y si intento ejecutar
php -v
obtengo 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
Intenté desinstalar el nodo y el icu4c pero el problema persiste
Nota : esto actualizará su versión de PHP.
Acabo de tener este mismo problema. La actualización de Homebrew y luego la limpieza funcionó para mí. Este error probablemente se me apareció debido a una discrepancia en las versiones del paquete. Ninguna de las soluciones anteriores resolvió mi error.
brew upgrade
Precaución : esto mejorará todos tus paquetes de preparación. Si solo desea actualizar paquetes específicos, asegúrese de ser específico.
brew upgrade {package}
y entonces
brew cleanup
Consiguió este error, también, después de instalar PHP 7.3. Lo resolví actualizando solo las versiones anteriores de mi php (5.6 y 7.0, no de los repositorios oficiales).
Los mantenedores habían compilado nuevas versiones de php contra el actual icu4c.
En mi caso, PHP 7 obtuvo de 0.31 a 0.33, y el problema se resolvió.
Ejecute la
npm version
y vea si ve el mismo error.
Si es así, actualice su versión de nodo
brew upgrade npm
.
==> Upgrading 1 outdated package, with result:
npm 8.1.2 -> 10.3.0
==> Upgrading npm
==> Installing dependencies for node: icu4c
==> Installing node dependency: icu4c
En lugar de instalar una versión antigua de
icu4c
que se puede vincular el php anterior (precompilado), es mejor recompilar el php antiguo para vincularlo a la biblioteca más reciente.
brew uninstall [email protected]
brew install --build-from-source [email protected]
Esto construirá php y lo vinculará a la biblioteca más nueva.
Encontré que
reinstall
no funcionó del todo;
la nueva instalación se ahogó cuando la carpeta de destino ya existía.
También realicé el
brew link --force [email protected]
para mi entorno.
En mi caso, eso sucedió porque icu4c se actualizó a la versión 63, pero mi imagen postgres instalada localmente todavía se refería a icu4c 62.1. Por eso tuve que cambiar la versión de icu4c utilizada:
brew info icu4c
brew switch icu4c <version>
Donde
version
es la versión instalada devuelta por
info
En realidad, estoy bastante sorprendido de que esta solución no haya sido presentada todavía, y creo que es la solución más fácil.
Vaya a GitHub, encuentre la versión de brewfile que coincida con la versión de
icu4c
que necesita y obtenga la versión en bruto del archivo (siga los enlaces de arriba y haga clic en
View File
luego en
Raw
).
Luego simplemente haz que se vuelva a instalar desde ese url.
Por ejemplo, la versión
62.1
:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
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) brew reinstale Formula / icu4c.rb
Parece que es imposible vincular
icu4c
usando
brew
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í:
-
Descargue y compile
icu4c
62.1 en/usr/local/icu4c/62.1
mkdir ~/sources
cd ~/sources
wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
tar xvzf icu4c-62_1-src.tgz
cd icu/source/
sudo mkdir /usr/local/icu4c/62.1
./configure --prefix=/usr/local/icu4c/62.1
make
sudo make install
- Enlace libs:
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
-
Establezca
DYLD_LIBRARY_PATH
en~/.bash_profile
:
export DYLD_LIBRARY_PATH=/usr/local/include
Espero que te ahorre unas horas de tu tiempo.
Resulta que yo, como @Grey Black, tuve que instalar v62.1 de icu4c. Nada más funcionó.
Sin embargo, el
brew switch icu4c 62.1
solo funciona si ha instalado 62.1 en el pasado.
Si no tienes más trabajo de piernas involucrado.
Homebrew no
facilita la instalación de
versiones anteriores de fórmulas.
Así es como lo hice:
-
Primero necesitamos un clon profundo del repo de Homebrew.
Esto puede llevar un tiempo:
git -C $(brew --repo homebrew/core) fetch --unshallow
-
brew log icu4c
para rastrear una confirmación 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.
Se agregaron un par de notas adicionales, gracias a @Noah por la captura.
Simplemente
brew remove php
y
brew install php
no funcionaron, ni
brew reinstall php
.
Mi solución fue hacer:
brew remove php
cd /usr/local/Cellar
rm -rf php/
brew install php
brew doctor
brew cleanup
Ahora
php -v
me da:
PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )
Tuve el mismo problema después de actualizar mi
macOS
a la versión
10.13.6
.
No puedo ejecutar comandos de
php
y
composer
.
Después de investigar por un tiempo e intentar varias soluciones publicadas en línea, reinstalar php usando
homebrew
funcionó.
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.
Tuve problemas porque mi versión de PHP (7.3) esperaba icu4c 63 y brew solo instalaría 64.
https://.com/a/55828190/2000947 me ayudó a instalar 63.