在Mac OS Sierra上使用brew安装节点失败


91

我正在尝试在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
也许(替换php56node)的帮助,但是我用的是官方的Node.js安装程序的Mac自己。
robertklep

6
这对我有用:brew update && brew重新安装nodejs
Scott Flack


@ScottFlack,酿造更新;brew重新安装nodejs也可以工作,因为尽管brew更新退出非零(例如,由于配置错误或未使用的分接头),重新安装nodejs仍可以通过。
emallove19年

Answers:


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上为我工作。我发誓我永远都不会理解--force的必要性。就像“这次我真的是真的...”。
马特

3
我还必须卸载节点8才能正常工作。brew uninstall node@8。参见medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider

6
添加了--ignore-dependencies以卸载命令,并且效果很好。
Almas Dusal

1
只是强制卸载并重新安装对我有用!
Graystripe

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
通过brew安装php56-pgsql后,我遇到了这个问题。
Felice Ostuni

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)高于节点期望的版本。

要修复,请确保已选择icu4c的60版。

首先,我找到了使用的版本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


9

首先,我卸载节点和icu4c,强制卸载所有版本

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

安装Node版本8之后

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

这是后引发了我brew upgradebrew update跑步。我能够通过简单地重新安装标记为问题的两个项目来修复它(这对我来说很有意义):

brew reinstall node
brew reinstall icu4c

4

以上都不对我有用。我正在使用High Sierra。

对我来说固定的是 brew upgrade



3

我在这里找到了一个很好的解决方案。我将在下面简要给出命令。

首先,cd进入自制程序公式目录:

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

这为我解决了。

学分:韩学


1
也是解决其他图书馆问题的绝佳一般方法!以前其他库都遇到过这个问题,但这是迄今为止最干净的解决方案(使用git分支,并且仅签出旧版本,而不是手动编辑公式)
Ricky Cook

1

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


1

迁移机器后,这个错误给了我。

即使一切都已安装,当我去检查node -vnpm 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

1

我固定了

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.