我使用自制(Mojave)安装节点,之后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,但问题仍然存在


当前回答

我的问题:

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

最终解决方案为:

重新安装NPM

其他回答

更新-正如在一些评论中所述,运行brew cleanup可能会修复此错误,如果这本身无法修复它,您可以尝试升级单个包或所有的brew包。

我也有同样的问题。升级Homebrew然后清理对我来说很有效。这个错误可能是由于包版本不匹配造成的。上面的解决方案都不能解决我的错误,但是运行下面的自制程序命令可以。

注意:这将升级你所有的酿造包,包括但不限于PHP。如果你只想升级特定的包,请确保是特定的。

brew upgrade icu4c

brew upgrade // or upgrade all packages

最后

brew cleanup

我把macOS升级到10.13.6版本后也遇到了同样的问题。我不能运行composer和php命令。在研究了一段时间并尝试了网上发布的各种解决方案后,使用homebrew重新安装php成功了。

酿造重新安装php@7.1

3月14日根据Ryan的评论添加的

通过运行PHP -v获取当前使用的版本,并获得正确的公式(可以在这里找到:https://formulae.brew.sh/formula/php)来替换上面命令中的@7.1。

实际上,我直接在自制网页上找到了解决方案:https://docs.brew.sh/Common-Issues

升级macOS会导致以下错误:

/usr/local/opt/icu4c/lib/libicui18n.54.dylib:库未加载 配置错误:不能找到libz 在macOS升级后,可能需要重新安装Xcode命令行工具并酿造升级所有已安装的公式:

xcode-select --install
brew upgrade

在我的案例中,问题与升级操作系统无关,但解决方案很有效。

[2020]版

对我来说,就是用所需的版本安装icu4c。

如果你需要安装旧版本,如版本62,(其他版本相同的步骤),你需要:

用这个版本创建自己的repo(或找别人的repo) Brew tap(每个版本的链接都不同):

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

yourUsername / homebrew-versions /公式/ 将下载的文件放入“公式”文件夹 brew tap [yourUsername]/homebrew-versions brew install [yourUsername]/homebrew-versions/icu4c .使用实例 你说对了!

其中[yourUsername]是您的GitHub帐户或已经拥有所需版本的人的名称。

Unfortunately, latest homebrew gives no longer a warning and now displays the error: Error: Calling Installation of XXX from a GitHub commit URL is disabled! Use 'brew extract XXX' to stable tap on GitHub instead. So the way to go now is to create a new repo on github called homebrew-versions to host the Formula in a Tap Then initialise it with: brew tap-new MYORG/homebrew-versions after git cloning the homebrew repo as suggested by Shine Hugh, copy paste the raw ruby file to your new Formula. Beware the funny naming convention! Example: File name is: gettext@0.20.2.rb Class name is: GettextAT0202 Example: https://github.com/nedap/homebrew-versions source:https://itnext.io/how-to-install-an-older-brew-package-add141e58d32

在我的情况下,我重新安装与Homebrew安装的所有包

$ brew list | xargs brew reinstall

之后,我开始安装我需要的版本