L'installation du nœud avec brew échoue sur Mac OS Sierra

92

J'essaye d'installer le nœud avec homebrew sur macOS Sierra. je cours

 brew install node

Après une installation apparemment réussie, j'obtiens ce qui suit en essayant de courir 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
la source
1
Peut - être que (remplacer php56par node) aide, mais j'utilise moi-même l'installateur officiel Node.js pour Mac.
robertklep
6
cela a fonctionné pour moi: brasser la mise à jour et brasser réinstaller nodejs
Scott Flack
Retrouvez le fil de discussion sur github ici github.com/Homebrew/homebrew-core/issues/11713
Simon Franzen
@ScottFlack, mise à jour de la bière; brew reinstall nodejs peut également fonctionner, puisque réinstaller nodejs peut réussir malgré la sortie de la mise à jour de brew non nulle (par exemple, en raison d'un tap mal configuré ou inutilisé).
emallove le

Réponses:

108

C'est la série d'incantations qui a finalement fonctionné pour moi sur la base de ce lien suggéré par @robertklep et @vovkasm.

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

Je ne sais pas si elles sont toutes nécessaires, mais étant donné que je ne peux pas mettre ma machine dans l'état précédent ... Je vais simplement laisser cette information ici, peut-être qu'elle sera utile pour quelqu'un d'autre.

mircealungu
la source
3
Merci pour cela. A travaillé pour moi sur Mac Os 10.13.4 High Sierra. Je jure que je ne comprendrai jamais la nécessité de - la force. C'est comme "Je le pense vraiment, cette fois ...".
Matt
3
J'ai également dû désinstaller le nœud 8 pour que cela fonctionne. brew uninstall node@8. Voir medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider
6
Ajout de --ignore-dependencies pour désinstaller les commandes et cela a très bien fonctionné.
Almas Dusal
1
Il suffit de forcer la désinstallation et la réinstallation pour moi!
Graystripe
1
Vous pouvez rencontrer une erreur avec NPM disant qu'il ne peut pas désinstaller icu4ccar il s'agit d'une dépendance pour d'autres applications. Pour contourner cette course: brew uninstall --ignore-dependencies icu4c && brew install icu4c. Cette commande remplace la deuxième commande de @ mircealungu.
reelyard le
68

Dans mon cas, brew upgrade noderésolvez le problème :)

glace6
la source
8
Je pense que vous voulez à la brew upgradeplace, updatem'a donné une erreur.
getmicah
31

Eh bien, j'ai eu cette erreur en essayant d'installer @angular/cli, le nœud réalisé pourrait être obsolète. Suivre les étapes exactes de @mircealungu n'a pas vraiment fonctionné pour moi, voici la version modifiée qui a fonctionné pour moi.

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
la source
2
Cela l'a fait pour moi. A également aidé pour mon projet actuel de simplement tuer node_modules ( rm -rf node_modules) et npm installencore une fois.
notacouch
1
J'ai eu ce problème après avoir installé php56-pgsql via brew, ce correctif pour moi.
Felice Ostuni
3
Merci, cette réponse m'a sauvé la vie. Il y a des choses que je devais faire en dehors de ces étapes.
yoshi
24

La mise à niveau du nœud a résolu un problème.

brew upgrade node 
mkkrolik
la source
23

J'ai récemment rencontré un problème similaire (après avoir brew switch node 9.8.0rétrogradé vers une version précédente du nœud)

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

Le problème est que le nœud est pointilleux sur la version d'icu4c qu'il recherche, et la version que j'avais installée (62) était supérieure à ce que le nœud attendait.

Pour réparer, je me suis assuré que la version 60 d'icu4c était sélectionnée.

J'ai d'abord trouvé les versions que j'avais avec brew info icu4c, puis j'ai brew switch icu4c 60.2sélectionné le nœud attendu.

amcvitty
la source
comment avez-vous déterminé que le nœud voulait la version 60.2 - merci
raison
1
@raison La version d'icu4c recherchée par le nœud se trouve dans le message d'erreur dyld. Dans ce cas 60,. Comparez cela à la sortie de brew info icu4cpour trouver une version compatible, par exemple 60.2.
neatonk
C'est la meilleure réponse
saza le
13

Il semble que le fichier /usr/local/opt/icu4c/lib/libicui18n.58.dylibn'existe pas dans votre système.

Veuillez vous assurer que icu4cinstallé avec Homebrew.

  1. brew info icu4c
  2. S'il est déjà installé, essayez de réinstaller: brew reinstall icu4c
  3. S'il n'est pas installé, essayez d'installer: brew install icu4c

la source
12

Pour la haute seirra, la simple "mise à niveau de la bière" fait de la magie!

Basavaraj Hadimani
la source
2
Même chose pour Mojave. J'ai eu le problème avec l'installation de PHP et je viens de taper votre commande. Merci.
Julian Schmuckli
9

Tout d'abord, je désinstalle le nœud et icu4c, force la désinstallation de toutes les versions

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

Après avoir installé la version 8 de Node

brew install node@8

S'il est déjà installé, veuillez simplement mettre à niveau

brew upgrade node@8

Et entrez

node -v

v8.11.1

Renan Bronchart
la source
8

Pour moi, c'était apparemment un problème avec l' icu4cinstallation de brew.

brew reinstall icu4c

va réinstaller icu4c.

si vous ne l'avez pas installé,

brew install icu4c
ddavison
la source
1
Merci beaucoup, cela m'a fait gagner beaucoup de temps et d'efforts. Recherche de cette réponse depuis très longtemps.
DC
cela devrait être une réponse acceptée. cette commande m'a sauvé
Jais Anasrulloh Ja'fari
7

Cela a été déclenché pour moi après un brew upgradeet a brew updatecouru. J'ai pu le résoudre en réinstallant simplement les deux éléments signalés comme des problèmes (ce qui avait du sens pour moi):

brew reinstall node
brew reinstall icu4c
Kevin Leary
la source
4

Aucun de ces éléments n'a fonctionné pour moi. J'utilise High Sierra.

Ce qui a corrigé ça pour moi était brew upgrade

Markashworth
la source
3

Rien n'a fonctionné pour moi mais exécuter cela a fonctionné

brew link --overwrite node
zalavadiya dur
la source
3

J'ai trouvé une solution qui fonctionne très bien ici . Je vais brièvement donner les commandes ci-dessous.

Commencez par cd dans le répertoire de formules homebrew:

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

Journal Git:

git log --follow icu4c.rb

Choisissez le hachage de validation qui correspond à la version dont vous avez besoin. J'avais besoin de la version 61.1, j'ai donc choisi le 6d9815commit:

git checkout -b icu4c-61.1 6d9815

Réinstaller:

brew reinstall ./icu4c.rb

Commutateur:

brew switch icu4c 61.1

Cela a réglé le problème pour moi.

Crédits : hanxue

Sawant
la source
1
également un excellent correctif général pour d'autres problèmes de bibliothèque! eu ce problème avec d'autres bibliothèques avant, mais c'est de loin la solution la plus propre (avec la branche git, et simplement vérifier les anciennes versions plutôt que d'éditer manuellement la formule)
Ricky Cook
1

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

rapaelec
la source
1

Cette erreur m'a été donnée après la migration des machines.

Même si tout était installé, lorsque je suis allé vérifier node -vou npm version, j'obtenais cette erreur.

Ce qui a corrigé c'était brew reinstall icu4c.

Michael
la source
1

J'ai eu le même problème avec mon installation php locale.

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

Résolution du problème avec cette commande. (vérifiez votre version)

brew link --overwrite --force php@7.1
Fred
la source
1

J'ai fixé par

cd /usr/local/Cellar
rm -rf node*/
rm -rf icu4c/
brew install node
Miao1007
la source
0

il semble que votre chemin de référence icu4u n'est pas défini correctement

Vérifiez d'abord que vous pouvez installer icu4c ou non en mettant ci-dessous le commentaire dans le commentaire promt

brew info icu4c

ou bien réinstaller

brew reinstall icu4c

Si vous devez avoir ce logiciel en premier dans votre exécution PATH:

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

J'espère que cela pourrait aider !!!!!

sritharien
la source
0

C'est aussi simple qu'un logiciel commun, il suffit de télécharger le package d'installation sur le site officiel: NodeJS

puis téléchargez une version recommandée (actuellement 8.11.3, finissez par .pkg), installez-la en tant que logiciel commun, puis vous pourrez l'utiliser. J'ai essayé tellement de méthodes, et cela ne fonctionne que pour moi.

Lau Real
la source
0

Essayez de redémarrer votre machine. Cela m'a aidé.

Vygandas
la source
0

J'ai supprimé export PATH="/usr/local/opt/icu4c/bin:$PATH"de mon ~/.bash_profilefichier et cela a résolu mon problème.

Mon erreur était:

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

Mon /usr/local/opt/icu4c/libcontientlibicui18n.64.dylib

y2knoproblem
la source