L'installazione di node con brew non riesce su Mac OS Sierra


92

Sto cercando di installare il nodo con homebrew su macOS Sierra. io corro

 brew install node

Dopo un'installazione apparentemente riuscita, ottengo quanto segue quando provo a eseguire 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
Forse questo (sostituire php56con node) aiuta, ma io stesso uso il programma di installazione ufficiale Node.js per Mac.
robertklep

6
questo ha funzionato per me: brew update & & brew reinstall nodejs
Scott Flack


@ScottFlack, brew update; brew reinstall nodejs può anche funzionare, poiché reinstallare nodejs può passare nonostante brew update esca diverso da zero (ad esempio, a causa di un tap non configurato o utilizzato in modo errato).
emallove

Risposte:


108

Questa è la serie di incantesimi che alla fine ha funzionato per me sulla base di questo collegamento suggerito da @robertklep e @vovkasm.

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

Non sono sicuro che siano tutti necessari, ma dato che non riesco a portare la mia macchina nello stato precedente ... Lascio queste informazioni qui, forse sarà utile per qualcun altro.


3
Grazie per questo. Ha funzionato per me su Mac OS 10.13.4 High Sierra. Giuro che non capirò mai la necessità di - forza. È come "Dico sul serio, questa volta ...".
Matt

3
Ho anche dovuto disinstallare il nodo 8 perché funzionasse. brew uninstall node@8. Vedi medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider

6
Aggiunto --ignore-dependencies per disinstallare i comandi e ha funzionato benissimo.
Almas Dusal

1
Forzare la disinstallazione e la reinstallazione ha funzionato per me!
Graystripe

1
È possibile che si verifichi un errore con NPM che dice che non può essere disinstallato icu4cperché è una dipendenza per altre applicazioni. Per ovviare a questo percorso: brew uninstall --ignore-dependencies icu4c && brew install icu4c. Questo comando sostituisce il secondo comando di @ mircealungu.
reelyard

68

Nel mio caso, brew upgrade noderisolvi il problema :)


8
Penso che tu voglia brew upgradeinvece, updatemi ha dato un errore.
getmicah

31

Bene, ho ricevuto questo errore durante l'installazione @angular/cli, mi sono reso conto che il nodo potrebbe non essere aggiornato. Seguire i passaggi esatti di @mircealungu non ha funzionato per me, ecco la versione modificata che ha funzionato per me.

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
Questo ha fatto per me. Ho anche aiutato il mio progetto attuale a uccidere solo node_modules ( rm -rf node_modules) e npm installtutto da capo.
notacouch

1
Ho avuto questo problema dopo aver installato php56-pgsql tramite brew, questo fixit per me.
Felice Ostuni

3
Grazie, questa risposta mi ha salvato la vita. Ci sono alcune cose che ho dovuto fare al di fuori di questi passaggi.
yoshi

24

L'aggiornamento del nodo ha risolto un problema.

brew upgrade node 

23

Recentemente ho riscontrato un problema simile (dopo aver eseguito il brew switch node 9.8.0downgrade a una versione precedente di node)

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

Il problema è che il nodo è pignolo su quale versione di icu4c sta cercando e la versione che avevo installato (62) era superiore a quella che il nodo si aspettava.

Per risolvere il problema, mi sono assicurato di aver selezionato la versione 60 di icu4c.

Per prima cosa ho trovato con quali versioni avevo brew info icu4c, poi ho brew switch icu4c 60.2selezionato il nodo che mi aspettavo.


come hai determinato che il nodo voleva la versione 60.2 - grazie
raison

1
@raison La versione di icu4c che il nodo sta cercando è nel messaggio di errore dyld. In questo caso 60,. Confrontalo con l'output di brew info icu4cper trovare una versione compatibile, ad es 60.2.
neatonk

Questa è la risposta migliore
saza il

13

Sembra che il file /usr/local/opt/icu4c/lib/libicui18n.58.dylibnon esista nel tuo sistema.

Assicurati che sia icu4cinstallato con Homebrew.

  1. brew info icu4c
  2. Se è già installato, prova a reinstallare: brew reinstall icu4c
  3. Se non è installato, prova a installare: brew install icu4c

12

Per gli alti seirra, solo "brew upgrade" fa magia!


2
Lo stesso anche per Mojave. Ha avuto il problema con l'installazione di PHP e ha appena digitato il comando. Grazie.
Julian Schmuckli

9

Per prima cosa disinstallo node e icu4c, costringo a disinstallare tutte le versioni

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

Dopo aver installato la versione 8 di Node

brew install node@8

Se è già installato, eseguire l'aggiornamento

brew upgrade node@8

Ed entra

node -v

v8.11.1


8

Per me è stato apparentemente un problema con l' icu4cinstallazione da brew.

brew reinstall icu4c

verrà reinstallato icu4c.

se non l'hai installato,

brew install icu4c

1
Grazie mille, mi ha fatto risparmiare così tanto tempo e fatica. Alla ricerca di questa risposta da molto tempo.
DC

questa dovrebbe essere una risposta accettata. questo comando mi ha salvato
Jais Anasrulloh Ja'fari il

7

Questo è stato attivato per me dopo un brew upgradeed è stato brew updateeseguito. Sono stato in grado di risolverlo semplicemente reinstallando i due elementi contrassegnati come problemi (che per me aveva senso):

brew reinstall node
brew reinstall icu4c

4

Nessuno dei precedenti ha funzionato per me. Sto usando High Sierra.

Quello che mi ha risolto è stato brew upgrade


3

Niente ha funzionato per me, ma eseguirlo ha funzionato

brew link --overwrite node

3

Ho trovato una soluzione che funziona alla grande qui . Fornirò brevemente i comandi seguenti.

Innanzitutto, cd nella directory della formula homebrew:

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

Registro di Git:

git log --follow icu4c.rb

Scegli l'hash del commit che corrisponde alla versione di cui hai bisogno. Avevo bisogno della versione 61.1, quindi ho scelto il 6d9815commit:

git checkout -b icu4c-61.1 6d9815

Reinstalla:

brew reinstall ./icu4c.rb

Interruttore:

brew switch icu4c 61.1

Questo ha risolto il problema per me.

Credito: hanxue


1
anche un'ottima soluzione generale per altri problemi di libreria! ha avuto questo problema con altre librerie prima, ma questa è di gran lunga la soluzione più pulita (con git branch, e basta controllare le vecchie versioni invece di modificare manualmente la formula)
Ricky Cook

1

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


1

Questo errore mi è stato fornito dopo la migrazione delle macchine.

Anche se tutto era installato, quando sono andato a controllare node -vo npm version, ho ricevuto questo errore.

Ciò che è stato risolto brew reinstall icu4c.


1

Ho avuto lo stesso problema con la mia installazione 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

Risolto il problema con questo comando. (controlla la tua versione)

brew link --overwrite --force php@7.1

1

Ho risolto

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

0

sembra che il tuo percorso di riferimento icu4u non sia impostato correttamente

prima controlla che potresti installare icu4c o meno mettendo sotto il commento nel promt commento

brew info icu4c

oppure reinstallare

brew reinstall icu4c

Se devi prima avere questo software nell'esecuzione PATH:

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

spero che questo possa aiutare !!!!!


0

È facile come un software comune, basta scaricare il pacchetto di installazione dal sito ufficiale: NodeJS

e quindi scarica una versione consigliata (attualmente 8.11.3, termina con .pkg), installala come un software comune, quindi puoi usarla. Ho provato tanti metodi e solo questo funziona per me.


0

Prova a riavviare la macchina. Questo mi ha aiutato.


0

Ho rimosso export PATH="/usr/local/opt/icu4c/bin:$PATH"dal mio ~/.bash_profilefile e ha risolto il mio problema.

Il mio errore è stato:

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

Il mio /usr/local/opt/icu4c/libcontienelibicui18n.64.dylib

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.