Eu instalei o nó usando o homebrew (Mojave), depois o php parou de funcionar e se eu tentar executar php -v
, recebo este erro:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Tentei desinstalar o nó e o icu4c, mas o problema persiste
Respostas:
Eu apenas tive esse mesmo problema. Atualizar o Homebrew e depois limpar funcionou para mim. Esse erro provavelmente apareceu para mim devido a uma incompatibilidade nas versões do pacote. Nenhuma das soluções acima resolveu meu erro, mas a execução dos seguintes comandos homebrew resolveu.
e depois
fonte
brew upgrade
atualizará todos os seus pacotes desatualizados de preparação, em vez disso, provavelmente apenas o farábrew upgrade npm
ou um pacote específico, não todos.No meu caso, isso aconteceu porque o icu4c foi atualizado para a versão 63, mas minha imagem do postgres instalada localmente ainda fazia referência ao icu4c 62.1. Portanto, eu tive que mudar a versão icu4c usada:
Onde
version
está a versão instalada retornada porinfo
fonte
brew list icu4c
mostrou um arquivo de/usr/local/Cellar/icu4c/63.1
.brew switch icu4c 63.1
consertou para mim.brew switch icu4c 63.1
mas continuo recebendo o mesmo erro nos logs, mesmo depois de reiniciar o postgres. Não sei o que fazer a seguir ...brew reinstall postgres
e que parecia resolver meus problemasicu4c 61.1
.63.1
- não resolve.62.1
- não encontrado.Estou realmente surpreso que esta solução ainda não tenha sido apresentada e sinto que é a solução mais fácil.
Vá para o GitHub, encontre a versão do brewfile que corresponde à versão
icu4c
necessária e obtenha a versão bruta do arquivo (siga os links acima e cliqueView File
emRaw
).Em seguida, basta reinstalar o brew a partir desse URL.
Por exemplo, versão
62.1
:Por exemplo, versão
64.2
:fonte
brew switch icu4c 62.1
em primeiro lugar , não funcionar para você.dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
este comando o corrigiu: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
Acontece que eu, como @Grey Black, tive que instalar a v62.1 do icu4c. Nada mais funcionou.
No entanto,
brew switch icu4c 62.1
só funciona se você tiver instalado 62.1 no passado. Se você não tiver, há mais trabalho braçal. O Homebrew não facilita a instalação de versões anteriores de fórmulas.Aqui está como eu fiz isso:
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
rastrear um commit que faça referência a 62.1;575eb4b
faz o truque.cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
Agora você deve ter a versão correta da dependência! Agora só para ...git reset && git checkout .
Limpe sua receita modificada.fonte
brew log icu4c
, há apenas 3-4 resultados. Nenhuma menção 62.1. O hash que você usa acima também não funciona. Eles removeram 62?git -C (brew --repo homebrew/core) fetch --unshallow
para garantir que você tenha um histórico completo do git de fermentação.icu4c
. Nem atualizar, atualizar o brew funcionou, nem reinstalar, vincular novamente, criar php a partir do código-fonte.git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb
e entãobrew switch 63.1
Eu tive o mesmo problema depois de atualizar minha
macOS
versão10.13.6
. Eu não posso corrercomposer
ephp
comandos. Depois de pesquisar por um tempo e tentar várias soluções postadas online, reinstalar o php usando ohomebrew
trabalhou.brew reinstall [email protected]
Adicionado em 14 de março com base no comentário de Ryan
obtenha a versão que você está usando no momento executando
php -v
e obtenha as fórmulas corretas (que você pode encontrar aqui: https://formulae.brew.sh/formula/php ) para substituir@7.1
no comando acima.fonte
node
após MacOS adaptação às10.14.2
,brew reinstall node
foi o bilhete para mim tambémbrew upgrade
consertou para mim.brew reinstall php
pode acabar instalando uma versão diferente da atual. Você pode ter que especificar a versão usando[email protected]
php -v
se o php é quebrado: pecho $PATH
(se você tiverphp
, deverá ver algo assim :):/usr/local/opt/[email protected]/bin
esta é uma maneira de descobrir quais versões estão sendo usadas no momento.Execute
npm version
e veja se você vê o mesmo erro.Nesse caso, atualize sua versão do npm
brew upgrade npm
.Créditos
fonte
Isso corrigiu para mim:
fonte
Apenas
brew remove php
ebrew install php
não funcionou, nem funcionoubrew reinstall php
. Minha solução foi fazer:Agora
php -v
me dá:fonte
Parece impossível vincular o
icu4c
usobrew
após a atualização mais recente do OS X. O que torna as coisas mais interessantes. A única solução que encontrei trabalhando para mim:icu4c
62.1 para/usr/local/icu4c/62.1
DYLD_LIBRARY_PATH
em~/.bash_profile
:fonte
No MacOS Mojave, a única maneira de corrigir isso era com
brew upgrade
fonte
Eu tive problemas porque minha versão do PHP (7.3) esperava que o icu4c 63 e o brew instalassem apenas 64.
https://stackoverflow.com/a/55828190/2000947 me ajudou a instalar o 63.
fonte
Para mim,
brew reinstall nodejs
isso foi corrigido - meu problema era com a execução do Elixir / Phoenix, portanto não era específico do PHP, acho que foi causado porbrew install postgres
, mas a reinstalação não ajudou. Eu estava recebendo dosnpm
comandos.fonte
brew update && brew upgrade
trabalhou para mimfonte
Isto é o que finalmente funcionou para mim.
brew reinstall postgres
Depois de executar o comando acima, você pode precisar executar
brew postgresql-upgrade-database
para acessar seus dados anteriores.
fonte
Em vez de instalar uma versão antiga da
icu4c
qual o php mais antigo (pré-compilado) possa se vincular, é melhor recompilar o php antigo para vincular à biblioteca mais recente.Isso criará o php e o vinculará à biblioteca mais recente. Eu descobri
reinstall
que não funcionou; a nova instalação foi bloqueada quando a pasta de destino já existia.Eu também fiz
brew link --force [email protected]
pelo meu ambiente.fonte
brew switch icu4c 62.1
comando de Gray Black funcionou para mim, no entanto.A resposta de Leland funcionou para mim, mas tive que alterar as etapas 4 e 6 para:
4) git checkout -B icu4c-62.1 575eb4b
6) Brew reinstalar Formula / icu4c.rb
fonte
Para fazer o downgrade, tive que recompilar da fonte (MacOS Mojave)
fonte
Eu segui este artigo aqui e esta parece ser a peça que faltava para mim:
fonte
No OSX 10.15.4, a execução
xcode-select --install
corrigiu o problema para mim.fonte
Também recebi esse erro após instalar o php 7.3. Eu resolvi atualizar apenas as versões antigas do meu php (5.6 e 7.0, não dos repositórios oficiais).
Os mantenedores haviam compilado novas versões php contra o icu4c atual.
No meu caso, o PHP 7 passou de 0,31 a 0,33, e o problema foi resolvido.
fonte
A solução nesta essência fez isso por mim
fonte
no meu caso, eu reinstalo todos os pacotes instalados com o Homebrew
Depois disso, começo a instalar minha versão que preciso
fonte