解决macos使用brew安装php8.2后,老版本提示‘/usr/local/opt/icu4c/lib/libicui18n.70.dylib‘ (no such file)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值