Cómo corregir el error dyld con libicui18n.62.dylib después de instalar Node mediante Brew en Mac

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: El dolor familiar de todo desarrollador en Mac

\n\n

Actualizaste Node.js mediante Homebrew, ejecutaste tu script PHP favorito — y de repente ves este mensaje que hiela la sangre:

\n\n
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib\n  Referenced from: /usr/local/bin/php\n  Reason: image not found
\n\n

¡Calma, solo calma! Si llegaste a esta página, significa que no eres el primero ni el último desarrollador en enfrentarse a este error. En Stack Overflow esta pregunta ha acumulado miles de visitas, y con razón: el problema surge debido a un conflicto de versiones de la biblioteca ICU4C (International Components for Unicode for C) después de instalar o actualizar Node.js mediante Homebrew.

\n\n

En este tutorial te mostraré tres formas funcionales de corregir el error, explicaré su origen y te daré recomendaciones útiles para que nunca más veas este mensaje. ¡Allá vamos!

\n\n

¿Por qué ocurre el error dyld: Library not loaded?

\n\n

Antes de lanzarnos a corregirlo, analicemos las causas. Esto te ayudará a entender mejor el ecosistema de macOS y Homebrew.

\n\n

¿Qué es ICU4C y qué tiene que ver con PHP?

\n\n

ICU4C es una biblioteca para soporte de Unicode, internacionalización y localización. PHP la utiliza para funciones como mb_convert_encoding(), la extensión intl y otras. Homebrew instala ICU4C como dependencia para muchos paquetes, incluyendo PHP y Node.js.

\n\n

Cadena de eventos que lleva al error

\n\n
    \n
  1. Instalas o actualizas Node.js mediante brew install node o brew upgrade node.
  2. \n
  3. Node.js requiere una versión específica de ICU4C (por ejemplo, 62.x).
  4. \n
  5. Homebrew actualiza ICU4C a una nueva versión (por ejemplo, 63.x o 64.x).
  6. \n
  7. La biblioteca antigua libicui18n.62.dylib se elimina.
  8. \n
  9. PHP, que fue compilado con la versión 62, no puede encontrar la biblioteca necesaria — y falla con el error.
  10. \n
\n\n

En pocas palabras: PHP se quedó "en el pasado", mientras que las bibliotecas ya están "en el futuro".

\n\n

Método 1: Solución rápida — reenlazar ICU4C (recomendado para principiantes)

\n\n

Esta es la forma más simple y rápida, que en el 90% de los casos resuelve el problema.

\n\n

Paso 1: Verifica la versión actual de ICU4C

\n\n

Abre la Terminal y ejecuta:

\n\n
brew list --versions icu4c
\n\n

Verás algo como icu4c 63.1 o 64.2. Recuerda la versión — te será útil.

\n\n

Paso 2: Reenlaza ICU4C con PHP

\n\n

Ejecuta el comando para reenlazar:

\n\n
brew link --force icu4c
\n\n

Si ves una advertencia de que las versiones no coinciden — no te asustes. Es normal. Luego reinicia PHP:

\n\n
which php\nphp -v
\n\n

Si el error desapareció — ¡bien hecho! Si no — pasa al siguiente método.

\n\n

Paso 3: Opción alternativa — reenlace forzado

\n\n

Si el comando anterior no funcionó, prueba:

\n\n
brew reinstall icu4c\nbrew link --overwrite icu4c
\n\n

Esto reinstalará la biblioteca y actualizará todos los enlaces.

\n\n

Método 2: Reinstalar PHP mediante Homebrew (para quienes prefieren la limpieza)

\n\n

Si el reenlace no ayudó — significa que tu PHP está "compilado" para una versión antigua de ICU4C. La mejor solución es reinstalar PHP.

\n\n

Paso 1: Elimina la versión actual de PHP

\n\n
brew uninstall php
\n\n

Si tienes varias versiones de PHP (por ejemplo, 7.4 y 8.0), elimínalas todas:

\n\n
brew uninstall php@7.4 php@8.0
\n\n

Paso 2: Limpia la caché de Homebrew

\n\n
brew cleanup
\n\n

Paso 3: Instala PHP nuevamente

\n\n
brew install php
\n\n

O, si necesitas una versión específica:

\n\n
brew install php@8.1
\n\n

Paso 4: Verifica el funcionamiento

\n\n

Escribe un script PHP simple para comprobar:<

Blogs

Book Recommendations