原本安装了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都可以使用了。

GitHub 加速计划 / br / brew
22
0
下载
🍺 The missing package manager for macOS (or Linux)
最近提交(Master分支:8 个月前 )
6301c2d3 api_hashable: retain access to global gitconfig 1 天前
82eaabf7 - 2 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐