Die Installation des Knotens mit Brew schlägt unter Mac OS Sierra fehl

88

Ich versuche, Node mit Homebrew unter macOS Sierra zu installieren. ich renne

 brew install node

Nach einer scheinbar erfolgreichen Installation erhalte ich beim Versuch Folgendes auszuführen 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
quelle
1
Vielleicht hilft dies (ersetzen php56durch node), aber ich verwende das offizielle Node.js-Installationsprogramm für Mac selbst.
Robertklep
6
Dies funktionierte für mich: Brew Update && Brew neu installieren nodejs
Scott Flack
Den Thread auf github finden Sie hier github.com/Homebrew/homebrew-core/issues/11713
Simon Franzen
@ScottFlack, Brew Update; Die Neuinstallation von NodeJS kann auch funktionieren, da die Neuinstallation von NodeJS trotz eines Brewing- Updates, das nicht Null ist, erfolgreich sein kann (z. B. aufgrund eines falsch konfigurierten oder nicht verwendeten Abgriffs).
emallove

Antworten:

107

Dies ist die Reihe von Beschwörungsformeln, die aufgrund dieses von @robertklep und @vovkasm vorgeschlagenen Links schließlich für mich funktioniert haben.

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

Ich bin mir nicht sicher, ob sie alle benötigt werden, aber da ich meine Maschine nicht in den vorherigen Zustand versetzen kann ... Ich lasse diese Informationen einfach hier, vielleicht ist sie für jemand anderen nützlich.

mircealungu
quelle
3
Danke dafür. Arbeitete für mich auf Mac Os 10.13.4 High Sierra. Ich schwöre, ich werde die Notwendigkeit von --force nie verstehen. Es ist wie "Ich meine es wirklich so, diesmal ...".
Matt
3
Ich musste auch Knoten 8 deinstallieren, damit dies funktionierte. brew uninstall node@8. Siehe medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider
6
--Ignore-dependencies zum Deinstallieren von Befehlen hinzugefügt und es hat großartig funktioniert.
Almas Dusal
1
Nur die Deinstallation und Neuinstallation erzwingen hat bei mir funktioniert!
Graystripe
1
Möglicherweise tritt bei NPM ein Fehler auf, der besagt, dass die Deinstallation nicht möglich ist, icu4cda dies eine Abhängigkeit für andere Anwendungen darstellt. Um diesen Lauf zu umgehen : brew uninstall --ignore-dependencies icu4c && brew install icu4c. Dieser Befehl ersetzt den zweiten Befehl von @ mircealungu.
Reelyard
66

In meinem Fall brew upgrade nodedas Problem lösen :)

ice6
quelle
7
Ich denke du willst brew upgradestattdessen, updategab mir einen Fehler.
Getmicah
30

Nun, ich habe diesen Fehler beim Installieren erhalten @angular/cli. Der Knoten ist möglicherweise veraltet. Das Befolgen der genauen Schritte von @mircealungu hat bei mir nicht ganz funktioniert. Hier ist die modifizierte Version, die bei mir funktioniert hat.

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
quelle
2
Das hat es für mich getan. Hat auch dazu beigetragen, dass mein aktuelles Projekt node_modules ( rm -rf node_modules) einfach npm installwieder beendet hat.
Notacouch
1
Ich habe dieses Problem nach der Installation von php56-pgsql über Brew bekommen, dieses Update für mich.
Felice Ostuni
3
Danke, diese Antwort hat mir das Leben gerettet. Es gibt einige Dinge, die ich außerhalb dieser Schritte tun musste.
Yoshi
24

Das Aktualisieren des Knotens hat ein Problem behoben.

brew upgrade node 
mkkrolik
quelle
21

Ich bin kürzlich auf ein ähnliches Problem gestoßen (nachdem ich ein brew switch node 9.8.0Downgrade auf eine frühere Version des Knotens durchgeführt habe).

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

Das Problem ist, dass der Knoten wählerisch ist, nach welcher Version von icu4c er sucht, und die von mir installierte Version (62) höher war als vom Knoten erwartet.

Um dies zu beheben, habe ich sichergestellt, dass ich Version 60 von icu4c ausgewählt habe.

Zuerst fand ich heraus, mit welchen Versionen ich war brew info icu4c, und brew switch icu4c 60.2wählte dann den erwarteten Knoten aus.

amcvitty
quelle
Wie haben Sie festgestellt, dass der Knoten Version 60.2 wollte - danke
raison
1
@raison Die Version von icu4c, nach der der Knoten sucht, befindet sich in der dyld-Fehlermeldung. In diesem Fall 60. Vergleichen Sie dies mit der Ausgabe von brew info icu4c, um eine kompatible Version zu finden, z 60.2.
Neatonk
Das ist die beste Antwort
saza
12

Die Datei /usr/local/opt/icu4c/lib/libicui18n.58.dylibscheint in Ihrem System nicht vorhanden zu sein.

Bitte stellen Sie sicher, dass icu4cmit Homebrew installiert.

  1. brew info icu4c
  2. Wenn bereits installiert, versuchen Sie erneut zu installieren: brew reinstall icu4c
  3. Wenn nicht installiert, versuchen Sie zu installieren: brew install icu4c

quelle
12

Für High Seirra macht nur "Brew Upgrade" Magie!

Basavaraj Hadimani
quelle
2
Gleiches gilt auch für Mojave. Hatte das Problem mit der PHP-Installation und tippte einfach Ihren Befehl ein. Vielen Dank.
Julian Schmuckli
9

Zuerst deinstalliere ich Node und icu4c, erzwinge die Deinstallation aller Versionen

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

Nach der Installation von Version 8 von Node

brew install node@8

Wenn es bereits installiert ist, aktualisieren Sie es einfach

brew upgrade node@8

Und eintreten

node -v

v8.11.1

Renan Bronchart
quelle
7

Dies wurde für mich nach a ausgelöst brew upgradeund brew updatelief. Ich konnte das Problem beheben, indem ich einfach die beiden als Probleme gekennzeichneten Elemente neu installierte (was für mich sinnvoll war):

brew reinstall node
brew reinstall icu4c
Kevin Leary
quelle
4

Keines der oben genannten hat bei mir funktioniert. Ich benutze High Sierra.

Was es für mich reparierte, war brew upgrade

Markashworth
quelle
4

Für mich war es anscheinend ein Problem mit der icu4cInstallation von Brew.

brew reinstall icu4c

wird neu installiert icu4c.

Wenn Sie es nicht installiert haben,

brew install icu4c
ddavison
quelle
1
Vielen Dank, es hat mir so viel Zeit und Mühe gespart. Ich habe sehr lange nach dieser Antwort gesucht.
DC vor
3

Für mich hat nichts funktioniert, aber das hat funktioniert

brew link --overwrite node
harte zalavadiya
quelle
3

Ich fand eine Lösung , die großen über arbeitet hier . Ich werde kurz die folgenden Befehle geben.

Zuerst CD in das Homebrew-Formelverzeichnis:

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

Git-Protokoll:

git log --follow icu4c.rb

Wählen Sie den Commit-Hash, der der von Ihnen benötigten Version entspricht. Ich brauchte Version 61.1 und wählte daher das 6d9815Commit:

git checkout -b icu4c-61.1 6d9815

Neu installieren:

brew reinstall ./icu4c.rb

Schalter:

brew switch icu4c 61.1

Das hat es für mich behoben.

Gutschrift: hanxue

Sawant
quelle
1
auch eine großartige allgemeine Lösung für andere Bibliotheksprobleme! hatte dieses Problem mit anderen Bibliotheken zuvor, aber dies ist bei weitem die sauberste Lösung (mit Git-Zweig und nur das Auschecken alter Versionen, anstatt die Formel manuell zu bearbeiten)
Ricky Cook
1

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

Rapaelec
quelle
1

Dieser Fehler wurde mir nach der Migration von Maschinen gegeben.

Obwohl alles installiert war, als ich nachschaute node -vnpm version bekam ich diesen Fehler oder .

Was das Problem behoben hat brew reinstall icu4c.

Michael
quelle
1

Ich hatte das gleiche Problem mit meiner lokalen PHP-Installation.

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

Das Problem mit diesem Befehl wurde behoben. (Überprüfen Sie Ihre Version)

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

Anscheinend ist Ihr icu4u-Referenzpfad nicht richtig eingestellt

Überprüfen Sie zuerst, ob Sie icu4c installieren oder nicht, indem Sie den folgenden Kommentar in die Kommentar-Promt einfügen

brew info icu4c

oder neu installieren

brew reinstall icu4c

Wenn Sie diese Software zuerst in Ihrem PATH ausführen müssen:

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

hoffe das könnte helfen !!!!!

Sritharan
quelle
0

Es ist so einfach wie eine herkömmliche Software. Laden Sie einfach das Installationspaket von der offiziellen Website herunter: NodeJS

Laden Sie dann eine empfohlene Version herunter (derzeit 8.11.3, Ende mit .pkg), installieren Sie sie als gängige Software, und verwenden Sie sie dann. Ich habe so viele Methoden ausprobiert, und nur das funktioniert bei mir.

Lau Real
quelle
0

Versuchen Sie, Ihren Computer neu zu starten. Das hat mir geholfen.

Vygandas
quelle
0

Ich habe export PATH="/usr/local/opt/icu4c/bin:$PATH"aus meiner ~/.bash_profileDatei entfernt und es hat mein Problem behoben.

Mein Fehler war:

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

Mein /usr/local/opt/icu4c/libenthältlibicui18n.64.dylib

y2knoproblem
quelle
0

Ich reparierte durch

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