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

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


@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.


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 :)


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

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 

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.


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


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


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

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

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



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


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


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.


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

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 !!!!!


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.



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


0

Eu consertei por

cd /usr/local/Cellar
rm -rf node*/
rm -rf icu4c/
brew install node
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.