我使用自制(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,但问题仍然存在
我使用自制(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,但问题仍然存在
当前回答
在我的情况下,我重新安装与Homebrew安装的所有包
$ brew list | xargs brew reinstall
之后,我开始安装我需要的版本
其他回答
Brew update && Brew upgrade对我来说很有效
对我来说,brew重装nodejs修复了这个问题-我的问题是运行Elixir/Phoenix,所以不是PHP特定的,我认为这是由brew安装postgres引起的,但重新安装没有帮助。我从npm命令中得到它。
关于恢复icu4c丢失版本有很多答案。我在postgresql中也有同样的错误,我想这可以在依赖于动态链接该库的各种程序中体现出来。
对于我来说,我使用的是特定版本的postgresql,即postgresql@12。我发现最简单的方法就是重新安装
brew reinstall postgresql@12
我想这也适用于php。
这个要点中的解决方法帮了我
brew uninstall --ignore-dependencies node icu4c
brew install node
我实际上尝试了所有有意义的解决方案,在这篇文章中提到的,但我仍然在运行php -v或composer时得到相同的错误。 节点版本很好,npm也没有安装正确版本的问题,它们都在运行。 运行重新安装php@7.1会抛出一个错误。 最后我不得不逃跑:
brew reinstall icu4c
这基本上是可行的,我必须手动安装php依赖项,如imagick。所以,imap.so 由于这些库是为一个我不再维护的项目安装的,我可以没有它们。但如果你确实依赖他们,请记住,之后会有更多的工作要做。