Не вдається встановити вузол із заварюванням на Mac OS Sierra


91

Я намагаюся встановити node з homebrew на macOS Sierra. я біжу

 brew install node

Після, здавалося б, вдалої інсталяції я отримую таке при спробі запустити 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
Можливо, це (замінити php56на node) допомагає, але я сам використовую офіційний інсталятор Node.js для Mac.
Робертклеп

6
це у мене спрацювало: brew update && brew reinstall nodejs
Scott Flack

Знайдіть тему на github тут github.com/Homebrew/homebrew-core/issues/11713
Саймон Францен

@ScottFlack, оновлення заварки; Brew перевстановлення nodejs також може працювати, оскільки переустановка nodejs може пройти, незважаючи на те, що оновлення заварки виходить ненульовим (наприклад, через неправильно налаштований або невикористаний кран).
emallove

Відповіді:


108

Це серія заклинань, які врешті-решт спрацювали для мене на основі цього посилання, запропонованого @robertklep та @vovkasm.

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

Я не впевнений, чи всі вони потрібні, але враховуючи те, що я не можу отримати свою машину в попередньому стані ... Я просто залишу цю інформацію тут, можливо, вона буде корисною для когось іншого.


3
Дякую за це. Працював у мене на Mac Os 10.13.4 High Sierra. Клянусь, я ніколи не зрозумію необхідності --сили. Це як "Я справді маю на увазі, цього разу ...".
Метт,

3
Мені також довелося видалити вузол 8, щоб це працювало. brew uninstall node@8. Див. Medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider

6
Додано --ignore-залежності для видалення команд, і це чудово працювало.
Almas Dusal

1
Просто примусове видалення та перевстановлення спрацювало для мене!
крутобокіе

1
Ви можете зіткнутися з помилкою, коли NPM каже, що її не можна видалити, icu4cоскільки це залежність для інших програм. Щоб обійти цю пробіг: brew uninstall --ignore-dependencies icu4c && brew install icu4c. Ця команда замінює другу команду @ mircealungu.
reelyard

67

У моєму випадку brew upgrade nodeвирішіть проблему :)


8
Я думаю, ви хочете brew upgradeзамість цього, updateдав мені помилку.
getmicah

31

Ну, я отримав цю помилку при спробі встановити @angular/cli, зрозумів, що вузол може бути застарілим. Дотримуючись точних кроків @mircealungu, мені це не вдалося, ось модифікована версія, яка працювала для мене.

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
Це зробило це для мене. Також допоміг моєму поточному проекту просто вбити node_modules ( rm -rf node_modules) і npm installзнову і знову.
notacouch

1
Я отримав цю проблему після встановлення php56-pgsql через brew, це виправлення для мене.
Феліче Остуні,

3
Дякую, ця відповідь врятувала мені життя. Є кілька речей, які мені довелося зробити поза цими кроками.
yoshi


23

Нещодавно я зіткнувся з подібною проблемою (після brew switch node 9.8.0переходу на попередню версію вузла)

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

Проблема в тому, що вузол прискіпливий щодо того, яку версію icu4c він шукає, і версія, яку я встановив (62), була вищою, ніж очікував node.

Для виправлення я переконався, що вибрав версію 60 icu4c.

Спочатку я знайшов, які версії у мене були brew info icu4c, потім зробив brew switch icu4c 60.2вибір того вузла, який очікувався.


як ви визначили, що вузол бажав версії 60.2 - спасибі
raison

1
@raison Версія icu4c, яку шукає вузол, знаходиться в повідомленні про помилку dyld. У цьому випадку 60. Порівняйте це з результатом пошуку, brew info icu4cщоб знайти сумісну версію, наприклад 60.2.
neatonk

Це найкраща відповідь
saza

13

Здається файл /usr/local/opt/icu4c/lib/libicui18n.58.dylib у вашій системі не існує.

Переконайтеся, що icu4cвстановлено з Homebrew.

  1. brew info icu4c
  2. Якщо вже встановлено, спробуйте перевстановити: brew reinstall icu4c
  3. Якщо не встановлено, спробуйте встановити: brew install icu4c

12

Для високих сейр просто «оновлення пива» робить магію!


2
Те саме стосується і Мохаве. Виникла проблема з встановленням PHP і просто набрав свою команду. Дякую.
Джуліан

9

Спочатку я видаляю node та icu4c, змушуючи видалити всі версії

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

Після встановлення версії 8 Node

brew install node@8

Якщо він уже встановлений, просто оновіть

brew upgrade node@8

І увійти

node -v

v8.11.1


8

Для мене це, мабуть, була проблема з icu4cустановкою від brew.

brew reinstall icu4c

перевстановить icu4c.

якщо у вас його не встановлено,

brew install icu4c

1
Щиро дякую, це заощадило мені стільки часу та сил. Шукав цю відповідь дуже довго.
DC

це повинна бути прийнята відповідь. ця команда мене врятувала
Jais Anasrulloh Ja'fari

7

Це було спрацьовано для мене після a brew upgradeі brew updateпобігло. Я зміг це виправити, просто перевстановивши два елементи, позначені як проблеми (що для мене мало сенс):

brew reinstall node
brew reinstall icu4c

4

Жодне з перерахованого не працювало для мене. Я використовую High Sierra.

Що для мене це виправило, так це brew upgrade



3

Я знайшов рішення, яке чудово працює тут . Я коротко дам команди нижче.

По-перше, компакт-диск в каталог формул homebrew:

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

Журнал Git:

git log --follow icu4c.rb

Виберіть хеш коміту, який відповідає потрібній вам версії. Мені потрібна була версія 61.1, тому я вибрав 6d9815коміт:

git checkout -b icu4c-61.1 6d9815

Перевстановити:

brew reinstall ./icu4c.rb

Перемикач:

brew switch icu4c 61.1

Це мені це виправило.

Кредит: hanxue


1
також чудове загальне виправлення для інших питань бібліотеки! мав цю проблему з іншими бібліотеками раніше, але це, безумовно, найчистіше рішення (з гілкою git і просто перевіркою старих версій, а не редагуванням формули вручну)
Рікі Кук,


1

Ця помилка була видана мені після перенесення машин.

Хоча все було встановлено, коли я ходив перевіряти node -vабоnpm version , я отримав цю помилку.

Що це було виправлено brew reinstall icu4c.


1

У мене була та ж проблема з моєю локальною установкою 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

Вирішив проблему за допомогою цієї команди. (перевірте свою версію)

brew link --overwrite --force php@7.1


0

здається, що ваш контрольний шлях icu4u встановлений неправильно

спочатку перевірте, чи можете ви встановити icu4c чи ні, поставивши нижче коментар у запиті коментаря

brew info icu4c

або перевстановити

brew reinstall icu4c

Якщо вам потрібно мати це програмне забезпечення першим під час запуску PATH:

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

сподіваюся Це може допомогти !!!!!


0

Це так само просто, як звичайне програмне забезпечення, просто завантажте інсталяційний пакет з офіційного сайту: NodeJS

а потім завантажте рекомендовану версію (в даний час 8.11.3, закінчується на .pkg), встановіть її як загальне програмне забезпечення, тоді ви можете використовувати її. Я спробував стільки методів, і тільки це працює для мене.



0

Я видалив export PATH="/usr/local/opt/icu4c/bin:$PATH"зі свого~/.bash_profile файлу, і це вирішило мою проблему.

Моя помилка:

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

Мій /usr/local/opt/icu4c/libвмістlibicui18n.64.dylib

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.