dyld: 库未加载:/usr/local/opt/icu4c/lib/libicui18n.62.dylib 在 Mac 上使用 brew 安装 node 后运行 php 出错

654

我使用Homebrew (Mojave)安装了Node.js后,PHP停止工作,并且如果我尝试运行php -v ,我会收到以下错误信息:

php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found

我尝试卸载node和icu4c,但问题仍然存在。


6
为了后人纪念:卸载/重新安装Yarn/Node似乎是解决问题的方法。 - Nathaniel Ford
41
根据我的理解,这种情况发生在您的版本依赖出现不匹配的情况下。在我的情况下,“brew upgrade”命令解决了我的问题。如有任何错误,请指出。 - sh6210
13
我获得这个过程中遇到的问题是 /usr/local/opt/icu4c 目录不存在,并且 brew reinstall icu4c 命令在 icu4c 目录上出现了很多 "permission denied" 错误。所以我使用了 sudo rm -rf /usr/local/Cellar/icu4c 命令删除了目录,然后再次执行 brew reinstall icu4c 命令,一切都正常了。 - Seth Johnson
我遇到了一个奇怪的情况(在一台过时的机器上使用High Sierra),但这是在我更新PHP到7.2之后发生的(或者尝试更新)。我的解决方案是从下载重新安装node。一旦你超出了苹果支持的MacOS范围,Homebrew就不可靠了,我发现。 - David Rhoden
1
只运行 brew upgrade 就帮助了我。 - Maxim Yefremov
显示剩余6条评论
42个回答

10

只是执行 brew remove phpbrew install php 无法解决问题,brew reinstall php 也不行。 我的解决方法是执行:

brew remove php
cd /usr/local/Cellar
rm -rf php/
brew install php
brew doctor
brew cleanup

现在php -v给我的输出是:
PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )

8

我的问题:

# npm install -g canvas

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
  Referenced from: /usr/local/opt/node@8/bin/node
  Reason: image not found

目前截至20210118,尝试多次后:

...
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
brew upgrade npm
brew install node
brew uninstall --ignore-dependencies node@8 icu4c
brew install icu4c
...

最终的解决方案是:

brew reinstall npm


brew reinstall npm 命令解决了我的问题。 - bartpie

7

对我来说,它出现在node@12上。以下步骤适用于我 -

brew uninstall --ignore-dependencies icu4c
brew install node

这将自动安装icu4c并修复整个问题。


6

对我来说,brew reinstall nodejs 解决了这个问题 - 我遇到的问题是与运行 Elixir/Phoenix 有关,所以不是 PHP 特定的问题,我认为它是由 brew install postgres 引起的,但重新安装并没有帮助。我是通过 npm 命令获得它的。


6

实际上,我直接在homebrew网站找到了解决办法:https://docs.brew.sh/Common-Issues

升级macOS可能会导致以下错误:

  • dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.54.dylib configure: error: Cannot find libz
  • 在升级macOS后,可能需要重新安装Xcode命令行工具并升级所有已安装的formula:
xcode-select --install
brew upgrade

在我的情况下,问题并不是与操作系统升级有关,但解决方案运行良好。

在升级到macOS 11.6 Big Sur之后,这个对我很有用。谢谢! - Vince

6

2021-02 简单解决方法

经过多年的处理,以下意外简单的解决方案对我起了作用:

  1. 在您需要的版本中使用Web浏览器打开原始文件:

版本62:https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb

版本64:https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb

版本66:https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb

版本67:https://raw.githubusercontent.com/Homebrew/homebrew-core/88b9cc789820f2f544d8d4a1053eebb044c2926c/Formula/icu4c.rb

最新版本:https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb

  1. 将内容复制粘贴到一个名为icu4c.rb的新文件中。
  2. 在新创建的文件上运行以下命令:brew reinstall icu4c.rb

来源:https://gist.github.com/hgrimelid/703691ab48c4a4d0537cfe835b4d55a6


我找到了一组类似的指令,但需要编译源代码:https://www.programmersought.com/article/34721476513/,这对我很有效。 - J.D. Pace

5

brew update && brew upgrade 对我有效


1
欢迎来到SO!我们欢迎您的合作。在这种情况下,还有15个问题需要解决,因此展示您的专业知识将是一个很好的机会。 - David García Bodego

4

以下是最终对我起作用的方法。

brew reinstall postgres

运行上述命令后,您可能需要运行

brew postgresql-upgrade-database

以访问您以前的数据。


这对我有效。MacOS Montery,PostgreSQL 14.3。 - Thomas

4
我遵循了这篇文章 在这里,这对我来说似乎是缺失的拼图。
brew uninstall node@8

在尝试了不同论坛上的每个建议后,我使用了这个方法来解决我的错误,但是现在我们重新安装node之后遇到了有关npm的问题。 - Pratik Khadka
被接受的答案对我没有用。对我有用的是这个答案的变体:brew remove node && brew install node - Joshua Richardson

4

为了降级,我不得不重新编译源代码(MacOS Mojave)

$ wget https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
$ tar xvfz icu4c-62_1-src.tgz
$ cd icu/sources
$ ./configure
$ make
$ make install

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接