我使用自制(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,但问题仍然存在


当前回答

如果你有最新的icu4c版本,并且像我一样遭受软件脆弱的折磨,只想让postgres/任何东西工作:

$ brew upgrade icu4c                                                                                                                           
Warning: icu4c 69.1 already installed

然后你可以创建符号链接:

> dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuuc.68.dylib

cd /usr/local/opt/icu4c/lib
ln -s libicuuc.69.1.dylib libicuuc.68.dylib
ln -s libicuio.69.1.dylib libicui18n.68.dylib

这些符号链接将在您第一次更新icu4c时消失,但这可能是最快的修复方法。

其他回答

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

酿造重新安装php@7.1

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

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

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

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

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

brew upgrade icu4c

brew upgrade // or upgrade all packages

最后

brew cleanup

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

升级macOS会导致以下错误:

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

xcode-select --install
brew upgrade

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

在我的例子中,发生这种情况是因为icu4c升级到版本63,但我在本地安装的postgres映像仍然引用icu4c 62.1。因此,我不得不改变使用的icu4c版本:

 brew info icu4c
 brew switch icu4c <version>

其中version是info返回的已安装版本。

[2022 Build It Yourself Edition]

适用于我的Mac OS 11.6.8大苏尔。

$ wget https://github.com/unicode-org/icu/releases/download/release-69-1/icu4c-69_1-src.tgz
$ # In Finder, copy from Downloads/ to your home directory
$ tar xzvf icu4c-69_1-src.tgz
$ cd icu/source
$ ./configure
$ make
$ make install

在那之后,node和npm又开始工作了。

参考文献

@Taher的回答 https://stackoverflow.com/a/63045892/16681513