Instalacja węzła z brew kończy się niepowodzeniem w systemie Mac OS Sierra

92

Próbuję zainstalować węzeł z homebrew na macOS Sierra. biegnę

 brew install node

Po pozornie udanej instalacji podczas próby uruchomienia otrzymuję następujące informacje 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
źródło
1
Może to (wymienić php56z node) pomaga, ale skorzystać z oficjalnego instalatora node.js for Mac siebie.
robertklep
6
to zadziałało dla mnie: brew update & & brew reinstaluj nodejs
Scott Flack
Znajdź wątek na github tutaj github.com/Homebrew/homebrew-core/issues/11713
Simon Franzen
@ScottFlack, napar aktualizacja; brew reinstalacja nodejs może również działać, ponieważ reinstalacja nodejs może przejść pomimo wyjścia aktualizacji brew niezerowej (np. z powodu źle skonfigurowanego lub nieużywanego kranu).
emallove

Odpowiedzi:

108

To jest seria zaklęć, które ostatecznie zadziałały dla mnie w oparciu o ten link zasugerowany przez @robertklep i @vovkasm.

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

Nie jestem pewien, czy wszystkie są potrzebne, ale biorąc pod uwagę, że nie mogę uzyskać mojej maszyny w poprzednim stanie ... Po prostu zostawię tę informację tutaj, może przyda się komuś innemu.

mircealungu
źródło
3
Dzięki za to. Pracował dla mnie na Mac Os 10.13.4 High Sierra. Przysięgam, że nigdy nie zrozumiem potrzeby ... siły. To jak "Naprawdę mam to na myśli, tym razem ...".
Matt
3
Musiałem również odinstalować węzeł 8, aby to zadziałało. brew uninstall node@8. Zobacz medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider
6
Dodano --ignore-zależności do odinstalowywania poleceń i działało świetnie.
Almas Dusal,
1
Po prostu wymuś odinstalowanie i ponowna instalacja zadziałała dla mnie!
Szara Pręga
1
Możesz napotkać błąd z NPM, który mówi, że nie można go odinstalować, icu4cponieważ jest to zależność od innych aplikacji. Aby obejść ten bieg: brew uninstall --ignore-dependencies icu4c && brew install icu4c. To polecenie zastępuje 2. polecenie @ mircealungu.
reelyard
68

W moim przypadku brew upgrade noderozwiąż problem :)

lód 6
źródło
8
Myślę, że chcesz brew upgradezamiast tego, updatedał mi błąd.
getmicah,
31

Cóż, pojawił się ten błąd podczas próby instalacji @angular/cli, zrealizowany węzeł może być nieaktualny. Podążanie za dokładnymi krokami @mircealungu nie działało dla mnie, oto zmodyfikowana wersja, która działała dla mnie.

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
źródło
2
Zrobiło to dla mnie. Pomogłem także mojemu obecnemu projektowi po prostu zabić node_modules ( rm -rf node_modules) i npm installwszystko od nowa.
notacouch
1
Mam ten problem po zainstalowaniu php56-pgsql przez brew, ta poprawka dla mnie.
Felice Ostuni
3
Dzięki, ta odpowiedź uratowała mi życie. Jest kilka rzeczy, które musiałem zrobić poza tymi krokami.
yoshi
24

Aktualizacja węzła rozwiązała problem.

brew upgrade node 
mkkrolik
źródło
23

Niedawno napotkałem podobny problem (po wykonaniu zmiany brew switch node 9.8.0na poprzednią wersję węzła)

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

Problem polega na tym, że węzeł jest wybredny, jeśli chodzi o wersję icu4c, której szuka, a wersja, którą zainstalowałem (62), była wyższa niż oczekiwał węzeł.

Aby to naprawić, upewniłem się, że mam wybraną wersję 60 icu4c.

Najpierw znalazłem wersje, z którymi miałem do czynienia brew info icu4c, a następnie wybrałem ten , brew switch icu4c 60.2którego oczekiwałem.

amcvitty
źródło
jak ustaliłeś, że węzeł chce wersji 60.2 - dzięki
raison
1
@raison Wersja icu4c, której szuka węzeł, znajduje się w komunikacie o błędzie dyld. W tym przypadku 60. Porównaj to z wynikiembrew info icu4c aby znaleźć kompatybilną wersję, np 60.2.
neatonk
To najlepsza odpowiedź
saza
13

Wydaje się, że plik /usr/local/opt/icu4c/lib/libicui18n.58.dylibnie istnieje w Twoim systemie.

Upewnij się, że został icu4czainstalowany z Homebrew.

  1. brew info icu4c
  2. Jeśli jest już zainstalowany, spróbuj ponownie: brew reinstall icu4c
  3. Jeśli nie jest zainstalowany, spróbuj zainstalować: brew install icu4c

źródło
12

W przypadku wysokiej seirry po prostu „ulepszenie parzenia” czyni magię!

Basavaraj Hadimani
źródło
2
To samo dotyczy Mojave. Miałem problem z instalacją PHP i właśnie wpisałeś polecenie. Dzięki.
Julian Schmuckli
9

Najpierw odinstalowałem node i icu4c, wymuszam odinstalowanie wszystkich wersji

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

Po zainstalowaniu wersji 8 Node

brew install node@8

Jeśli jest już zainstalowany, po prostu zaktualizuj

brew upgrade node@8

I wejdź

node -v

v8.11.1

Renan Bronchart
źródło
8

U mnie był to podobno problem z icu4cinstalacją z naparu.

brew reinstall icu4c

zainstaluje ponownie icu4c.

jeśli nie masz go zainstalowanego,

brew install icu4c
ddavison
źródło
1
Dziękuję bardzo, zaoszczędziło mi to dużo czasu i wysiłku. Bardzo długo szukałem tej odpowiedzi.
DC
to powinna zostać zaakceptowana odpowiedź. to polecenie uratowało mnie
Jais Anasrulloh Ja'fari
7

Zostało to uruchomione dla mnie po brew upgradei brew updatepobiegł. Udało mi się to naprawić, po prostu ponownie instalując dwa elementy oznaczone jako problemy (co miało dla mnie sens):

brew reinstall node
brew reinstall icu4c
Kevin Leary
źródło
4

Żadne z powyższych nie działało dla mnie. Używam High Sierra.

Naprawiło to dla mnie brew upgrade

markashworth
źródło
3

Nic nie działało dla mnie, ale prowadzenie tego zadziałało

brew link --overwrite node
ostry zalavadiya
źródło
3

Znalazłem rozwiązanie, które działa świetnie się tutaj . Pokrótce podam poniższe polecenia.

Najpierw przejdź do katalogu formuły homebrew:

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

Dziennik Git:

git log --follow icu4c.rb

Wybierz skrót zatwierdzenia, który pasuje do potrzebnej wersji. Potrzebowałem wersji 61.1, więc wybrałem zmianę 6d9815:

git checkout -b icu4c-61.1 6d9815

Zainstaluj ponownie:

brew reinstall ./icu4c.rb

Przełącznik:

brew switch icu4c 61.1

To naprawiło to dla mnie.

Kredyt: hanxue

Sawant
źródło
1
także świetna ogólna poprawka dla innych problemów z biblioteką! miałem ten problem z innymi bibliotekami, ale ten jest zdecydowanie najczystszym rozwiązanie (z git oddziału, a po prostu sprawdzanie starych wersji zamiast ręcznej edycji wzoru)
Ricky gotować
1

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

rapaelec
źródło
1

Ten błąd został mi przekazany po migracji maszyn.

Mimo że wszystko było zainstalowane, kiedy poszedłem sprawdzić node -vlub npm version, otrzymałem ten błąd.

Naprawiono to brew reinstall icu4c.

Michał
źródło
1

Miałem ten sam problem z lokalną instalacją 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

Rozwiązano problem z tym poleceniem. (sprawdź swoją wersję)

brew link --overwrite --force php@7.1
Fred
źródło
1

Naprawiłem przez

cd /usr/local/Cellar
rm -rf node*/
rm -rf icu4c/
brew install node
Miao1007
źródło
0

wygląda na to, że ścieżka referencyjna icu4u nie jest ustawiona poprawnie

Najpierw sprawdź, czy możesz zainstalować icu4c, czy nie, umieszczając poniżej komentarz w promcie komentarzy

brew info icu4c

lub ponownie zainstaluj

brew reinstall icu4c

Jeśli musisz mieć to oprogramowanie jako pierwsze w swoim przebiegu PATH:

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

mam nadzieję, że to może pomóc !!!!!

sritharan
źródło
0

To tak proste, jak zwykłe oprogramowanie, wystarczy pobrać pakiet instalacyjny z oficjalnej strony: NodeJS

a następnie pobierz zalecaną wersję (obecnie 8.11.3, kończy się na .pkg), zainstaluj ją jako zwykłe oprogramowanie, a następnie możesz z niej korzystać. Próbowałem tylu metod i tylko to działa dla mnie.

Lau Real
źródło
0

Spróbuj ponownie uruchomić komputer. To mi pomogło.

Vygandas
źródło
0

Usunąłem export PATH="/usr/local/opt/icu4c/bin:$PATH"z mojego ~/.bash_profilepliku i to rozwiązało mój problem.

Mój błąd to:

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

Moje /usr/local/opt/icu4c/libzawieralibicui18n.64.dylib

y2knoproblem
źródło