Como corrigir o erro dyld com libicui18n.62.dylib após instalar o Node via Brew no Mac

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: A dor familiar de todo desenvolvedor no Mac

\n\n

Você atualizou o Node.js via Homebrew, executou seu script PHP favorito — e de repente vê esta mensagem de gelar o sangue:

\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, apenas calma! Se você chegou a esta página, significa que você não é o primeiro nem o último desenvolvedor a enfrentar este erro. No Stack Overflow, esta pergunta acumulou milhares de visualizações, e não é à toa: o problema surge devido a um conflito de versões da biblioteca ICU4C (International Components for Unicode for C) após instalar ou atualizar o Node.js via Homebrew.

\n\n

Neste tutorial, mostrarei três maneiras funcionais de corrigir o erro, explicarei sua causa raiz e darei recomendações úteis para que você nunca mais veja esta mensagem. Vamos lá!

\n\n

Por que ocorre o erro dyld: Library not loaded?

\n\n

Antes de sair corrigindo, vamos entender as causas. Isso ajudará você a compreender melhor o ecossistema do macOS e do Homebrew.

\n\n

O que é ICU4C e o que o PHP tem a ver com isso?

\n\n

ICU4C é uma biblioteca para suporte a Unicode, internacionalização e localização. O PHP a utiliza para funções como mb_convert_encoding(), a extensão intl e outras. O Homebrew instala o ICU4C como dependência para muitos pacotes, incluindo PHP e Node.js.

\n\n

Cadeia de eventos que leva ao erro

\n\n
    \n
  1. Você instala ou atualiza o Node.js via brew install node ou brew upgrade node.
  2. \n
  3. O Node.js requer uma versão específica do ICU4C (por exemplo, 62.x).
  4. \n
  5. O Homebrew atualiza o ICU4C para uma nova versão (por exemplo, 63.x ou 64.x).
  6. \n
  7. A biblioteca antiga libicui18n.62.dylib é removida.
  8. \n
  9. O PHP, que foi compilado com a versão 62, não consegue encontrar a biblioteca necessária — e falha com o erro.
  10. \n
\n\n

Simplificando: o PHP ficou "no passado", enquanto as bibliotecas já estão "no futuro".

\n\n

Método 1: Solução rápida — religação do ICU4C (recomendo para iniciantes)

\n\n

Esta é a maneira mais simples e rápida, que resolve o problema em 90% dos casos.

\n\n

Passo 1: Verifique a versão atual do ICU4C

\n\n

Abra o Terminal e execute:

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

Você verá algo como icu4c 63.1 ou 64.2. Anote a versão — será útil.

\n\n

Passo 2: Religue o ICU4C com o PHP

\n\n

Execute o comando para religar:

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

Se você vir um aviso de que as versões não coincidem — não se assuste. Isso é normal. Em seguida, reinicie o PHP:

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

Se o erro desapareceu — parabéns! Se não — vá para o próximo método.

\n\n

Passo 3: Alternativa — religação forçada

\n\n

Se o comando acima não funcionou, tente:

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

Isso reinstalará a biblioteca e atualizará todos os links.

\n\n

Método 2: Reinstalação do PHP via Homebrew (para quem gosta de limpeza)

\n\n

Se a religação não ajudou — significa que seu PHP está "fixado" na versão antiga do ICU4C. A melhor solução é reinstalar o PHP.

\n\n

Passo 1: Remova a versão atual do PHP

\n\n
brew uninstall php
\n\n

Se você tiver várias versões do PHP (por exemplo, 7.4 e 8.0), remova todas:

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

Passo 2: Limpe o cache do Homebrew

\n\n
brew cleanup
\n\n

Passo 3: Instale o PHP novamente

\n\n
brew install php
\n\n

Ou, se precisar de uma versão específica:

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

Passo 4: Verifique o funcionamento

\n\n

Escreva um script PHP simples para testar:<

Blogs

Book Recommendations