A instalação do nó com fermentação falha no Mac OS Sierra

88

Estou tentando instalar o node com homebrew no macOS Sierra. eu corro

 brew install node

Depois de uma instalação aparentemente bem-sucedida, recebo o seguinte ao tentar executar node:

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.58.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
Abort trap: 6
mircealungu
fonte
1
Talvez este (substitua php56com node) ajuda, mas eu uso o instalador oficial Node.js para Mac mim.
robertklep
6
isso funcionou para mim: brew update && brew reinstalar nodejs
Scott Flack
Encontre o tópico no github aqui github.com/Homebrew/homebrew-core/issues/11713
Simon Franzen
@ScottFlack, atualização da bebida; brew reinstalar nodejs também pode funcionar, já que reinstalar nodejs pode passar apesar do brew update sair de um valor diferente de zero (por exemplo, devido a uma torneira mal configurada ou não utilizada).
emallove

Respostas:

107

Esta é a série de encantamentos que funcionaram para mim com base neste link sugerido por @robertklep e @vovkasm.

brew uninstall --force node
brew uninstall icu4c && brew install icu4c
brew unlink icu4c && brew link icu4c --force
brew install node

Não tenho certeza se eles são todos necessários, mas visto que não consigo colocar minha máquina no estado anterior ... Vou apenas deixar esta informação aqui, talvez seja útil para outra pessoa.

mircealungu
fonte
3
Obrigado por isso. Trabalhou para mim no Mac Os 10.13.4 High Sierra. Juro que nunca vou entender a necessidade de --force. É como "Estou falando sério, desta vez ...".
Matt
3
Eu também tive que desinstalar o nó 8 para que isso funcionasse. brew uninstall node@8. Consulte medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider
6
Adicionado --ignore-dependencies para desinstalar comandos e funcionou muito bem.
Almas Dusal de
1
Forçar a desinstalação e reinstalação funcionou para mim!
Graystripe
1
Você pode encontrar um erro com o NPM dizendo que ele não pode ser desinstalado icu4cporque é uma dependência de outros aplicativos. Para contornar este problema prazo: brew uninstall --ignore-dependencies icu4c && brew install icu4c. Este comando substitui o segundo comando de @ mircealungu.
Reelyard
67

No meu caso, brew upgrade noderesolva o problema :)

ice6
fonte
8
Eu acho que você quer em brew upgradevez disso, updateme deu um erro.
getmicah
30

Bem, recebi este erro ao tentar instalar @angular/cli, percebi que o nó pode estar desatualizado. Seguir os passos exatos de @mircealungu não funcionou muito bem para mim, aqui está a versão modificada que funcionou para mim.

brew uninstall --ignore-dependencies --force node
brew uninstall --ignore-dependencies --force icu4c
brew install icu4c
brew unlink icu4c && brew link icu4c --force
brew install node
ishandutta2007
fonte
2
Isso fez isso por mim. Também ajudei no meu projeto atual apenas para matar node_modules ( rm -rf node_modules) e npm installtudo de novo.
notacouch
1
Eu tenho esse problema depois de instalar o php56-pgsql via brew, esse fixit para mim.
Felice Ostuni
3
Obrigado, essa resposta salvou minha vida. Há algumas coisas que tive que fazer fora dessas etapas.
yoshi
24

A atualização do nó corrigiu um problema.

brew upgrade node 
mkkrolik
fonte
21

Recentemente encontrei um problema semelhante (depois de fazer o brew switch node 9.8.0downgrade para uma versão anterior do nó)

dyld: Library not loaded: 
/usr/local/opt/icu4c/lib/libicui18n.60.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
Abort trap: 6

O problema é que o nó é exigente quanto à versão do icu4c que está procurando, e a versão que eu instalei (62) era superior ao que o nó esperava.

Para corrigir, certifiquei-me de que tinha a versão 60 do icu4c selecionada.

Primeiro descobri quais versões eu tinha e brew info icu4c, em seguida, brew switch icu4c 60.2selecionei o nó que estava esperando.

avidez
fonte
como você determinou que o nó queria a versão 60.2 - obrigado
raison
1
@raison A versão de icu4c que o nó está procurando está na mensagem de erro dyld. Neste caso 60,. Compare isso com a saída de brew info icu4cpara encontrar uma versão compatível, por exemplo 60.2.
neatonk
Essa é a melhor resposta
saza
12

Parece que o arquivo /usr/local/opt/icu4c/lib/libicui18n.58.dylibnão existe em seu sistema.

Certifique-se de que está icu4cinstalado com o Homebrew.

  1. brew info icu4c
  2. Se já estiver instalado, tente reinstalar: brew reinstall icu4c
  3. Se não estiver instalado, tente instalar: brew install icu4c

fonte
12

Para alta seirra, apenas "atualizar a cerveja" faz mágica!

Basavaraj Hadimani
fonte
2
O mesmo vale para Mojave. Teve um problema com a instalação do PHP e apenas digitei seu comando. Obrigado.
Julian Schmuckli de
9

Primeiro eu desinstalo o node e o icu4c, forço para desinstalar todas as versões

brew uninstall --force --ignore-dependencies node icu4c

Após instalar a versão 8 do Node

brew install node@8

Se já estiver instalado, basta atualizar

brew upgrade node@8

E entrar

node -v

v8.11.1

Renan Bronchart
fonte
7

Isso foi acionado para mim após um brew upgradee brew updatecorreu. Consegui consertar simplesmente reinstalando os dois itens sinalizados como problemas (o que fez sentido para mim):

brew reinstall node
brew reinstall icu4c
Kevin leary
fonte
6

Para mim, foi aparentemente um problema com a icu4cinstalação do brew.

brew reinstall icu4c

irá reinstalar icu4c.

se você não tem instalado,

brew install icu4c
ddavison
fonte
1
Muito obrigado, isso me economizou muito tempo e esforço. Procurando por esta resposta por muito tempo.
DC
esta deve ser a resposta aceita. este comando me salvou
Jais Anasrulloh Ja'fari
4

Nenhuma das opções acima funcionou para mim. Estou usando o High Sierra.

O que consertou para mim foi brew upgrade

Markashworth
fonte
3

Nada funcionou para mim, mas funcionou

brew link --overwrite node
zalavadiya severo
fonte
3

Eu encontrei uma solução que funciona muito bem aqui . Darei brevemente os comandos abaixo.

Primeiro, vá para o diretório da fórmula do homebrew:

cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula

Log Git:

git log --follow icu4c.rb

Escolha o hash de confirmação que corresponde à versão que você precisa. Eu precisava da versão 61.1, então escolhi o 6d9815commit:

git checkout -b icu4c-61.1 6d9815

Reinstalar:

brew reinstall ./icu4c.rb

Interruptor:

brew switch icu4c 61.1

Isso resolveu para mim.

Crédito: hanxue

Sawant
fonte
1
também uma ótima solução geral para outros problemas de biblioteca! teve esse problema com outras bibliotecas antes, mas esta é de longe a solução mais limpa (com o branch git e apenas verificando as versões antigas em vez de editar manualmente a fórmula)
Ricky Cook
1

brew uninstall --force node
brew uninstall --ignore-dependencies icu4c
brew unlink icu4c && brew link icu4c --force
brew install node

rapaelec
fonte
1

Este erro foi informado para mim após a migração de máquinas.

Mesmo que tudo estivesse instalado, quando eu fosse verificar node -vou npm version, receberia este erro.

O que foi consertado brew reinstall icu4c.

Michael
fonte
1

Eu tive o mesmo problema com a minha instalação local do php.

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

Resolvido o problema com este comando. (verifique sua versão)

brew link --overwrite --force php@7.1
Fred
fonte
0

parece que o caminho de referência do icu4u não está definido corretamente

primeiro verifique se você pode instalar o icu4c ou não, colocando o comentário abaixo no prompt de comentário

brew info icu4c

ou então reinstalar

brew reinstall icu4c

Se você precisar ter este software primeiro na execução do PATH:

echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile

espero que isso possa ajudar !!!!!

sritharan
fonte
0

É tão fácil quanto um software comum, basta baixar o pacote de instalação do site oficial: NodeJS

e então baixar uma versão recomendada (atualmente 8.11.3, terminar com .pkg), instale-o como um software comum, então você pode usá-lo. Tentei tantos métodos, e só isso funciona para mim.

Lau Real
fonte
0

Tente reiniciar sua máquina. Isso me ajudou.

Vygandas
fonte
0

Tirei export PATH="/usr/local/opt/icu4c/bin:$PATH"do meu ~/.bash_profilearquivo e resolvi meu problema.

Meu erro foi:

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.63.dylib
  Referenced from: /usr/local/opt/node@10/bin/node
  Reason: image not found
Abort trap: 6

Meu /usr/local/opt/icu4c/libcontémlibicui18n.64.dylib

y2knoproblem
fonte
0

Eu consertei por

cd /usr/local/Cellar
rm -rf node*/
rm -rf icu4c/
brew install node
Miao1007
fonte