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

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


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


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


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

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


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.


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

12

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


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


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

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

4

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

Naprawiło to dla mnie brew upgrade



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


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


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.


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

1

Naprawiłem przez

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

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


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.



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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.