原本安装了php7.2,使用brew安装php8.2之后,php 7.2无法使用了,提示:
/usr/local/opt/php@7.2/bin/php -v dyld[49280]: Library not loaded: '/usr/local/opt/icu4c/lib/libicui18n.70.dylib' Referenced from: '/usr/local/Cellar/php@7.2/7.2.34_4/bin/php' Reason: tried: '/usr/local/opt/icu4c/lib/libicui18n.70.dylib' (no such file), '/usr/local/lib/libicui18n.70.dylib' (no such file), '/usr/lib/libicui18n.70.dylib' (no such file), '/usr/local/Cellar/icu4c/72.1/lib/libicui18n.70.dylib' (no such file), '/usr/local/lib/libicui18n.70.dylib' (no such file), '/usr/lib/libicui18n.70.dylib' (no such file)[1] 49280 abort /usr/local/opt/php@7.2/bin/php -v
可以看到/usr/local/opt/icu4c/lib/下没有对应文件了。
今天使用另一种方式来修复。
修复步骤如下:
1、找到icu4c 7.0的代码,安装下
进入目录:
cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
找到icu4c 7.0的git log:
git log --follow icu4c.rb
这里耐心等待下,log比较多,等多几秒就能看到icu4c 7.0的提交记录。
找到后检出代码:
git checkout -b icu4c-70 aa997d1c221d249325e56c238acb90ef7b4e0fc9
安装一下:
brew reinstall ./icu4c.rb
安装完成后,会看到/usr/local/opt/icu4c/lib/
下有了libicui18n.70.dylib这些文件
2、重新安装最新的icu4c
步骤1完成后,可以使用php7.2了,但php8.2无法使用,提示缺少libicui18n.72.dylib这些文件。
这里需要先把libicui18n.70.dylib这些文件复制到另一个目录,重新安装下icu4c,安装完成后,再把libicui18n.70.dylib这些文件放到/usr/local/opt/icu4c/lib/
下。
把libicui18n.70.dylib这些文件复制到/tmp下
cp /usr/local/opt/icu4c/lib/*70* /tmp
重新安装icu4c, 注意不要在git源码目录下
cd ~brew reinstall icu4c
安装完成后,php 8.2可以使用了,把libicui18n.70.dylib这些文件放回来:
cp /tmp/*70* /usr/local/opt/icu4c/lib/
至此修复完成,两个版本的php都可以使用了。
来源地址:https://blog.csdn.net/u012375924/article/details/130412482