我使用自制(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,但问题仍然存在
当前回答
实际上,我很惊讶这个解决方案还没有提出,我觉得这是最简单的解决方案。
去GitHub,找到与你需要的icu4c版本匹配的brewfile版本,并获得文件的原始版本(按照上面的链接,然后单击“查看文件然后原始”)。
然后让brew从那个url重新安装。
例如,版本62.1:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
例如,版本64.2:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
更新:
Homebrew的新版本可能要求您先下载该文件。如果是这样:
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall icu4c.rb
其他回答
我已经尝试了这里的许多建议,最后酿造升级php是对我有用的,但似乎这个问题无处不在
我通过更新所有R包来解决int:
update.packages(checkBuilt = TRUE, ask = FALSE)
我实际上尝试了所有有意义的解决方案,在这篇文章中提到的,但我仍然在运行php -v或composer时得到相同的错误。 节点版本很好,npm也没有安装正确版本的问题,它们都在运行。 运行重新安装php@7.1会抛出一个错误。 最后我不得不逃跑:
brew reinstall icu4c
这基本上是可行的,我必须手动安装php依赖项,如imagick。所以,imap.so 由于这些库是为一个我不再维护的项目安装的,我可以没有它们。但如果你确实依赖他们,请记住,之后会有更多的工作要做。
在我的例子中,发生这种情况是因为icu4c升级到版本63,但我在本地安装的postgres映像仍然引用icu4c 62.1。因此,我不得不改变使用的icu4c版本:
brew info icu4c
brew switch icu4c <version>
其中version是info返回的已安装版本。
实际上,我直接在自制网页上找到了解决方案:https://docs.brew.sh/Common-Issues
升级macOS会导致以下错误:
/usr/local/opt/icu4c/lib/libicui18n.54.dylib:库未加载 配置错误:不能找到libz 在macOS升级后,可能需要重新安装Xcode命令行工具并酿造升级所有已安装的公式:
xcode-select --install
brew upgrade
在我的案例中,问题与升级操作系统无关,但解决方案很有效。