Mac升级再降级PHP后出现‘Library not loaded’错误求助
PHP 7.4回退后dyld库加载失败修复方案
问题背景
昨日在Mac上执行brew upgrade将PHP从7.4升级至8.2,发现所用deployer版本不兼容,遂尝试回退至7.4,执行命令:
brew unlink php brew link --overwrite php@7.4
(注:原命令中php link应为brew link,推测为输入笔误)
现在使用PHP时触发致命错误:
dyld[18837]: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.71.dylib Referenced from: <F476B085-3588-359F-93EC-858DAE98B0D9> /usr/local/Cellar/php@7.4/7.4.32/bin/php Reason: tried: '/usr/local/opt/icu4c/lib/libicuio.71.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/icu4c/lib/libicuio.71.dylib' (no such file), '/usr/local/opt/icu4c/lib/libicuio.71.dylib' (no such file), '/usr/local/lib/libicuio.71.dylib' (no such file), '/usr/lib/libicuio.71.dylib' (no such file, not in dyld cache), '/usr/local/Cellar/icu4c/73.2/lib/libicuio.71.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/icu4c/73.2/lib/libicuio.71.dylib' (no such file), '/usr/local/Cellar/icu4c/73.2/lib/libicuio.71.dylib' (no such file), '/usr/local/lib/libicuio.71.dylib' (no such file), '/usr/lib/libicuio.71.dylib' (no such file, not in dyld cache) Abort trap: 6
尝试brew upgrade icu4c提示73.2已安装,brew reinstall icu4c后问题依旧,还出现php@7.4禁用、php@7.3公式不存在等错误,有Time Machine备份但不知恢复哪些内容。
修复方案
方案一:重新编译PHP@7.4适配当前icu4c版本
PHP@7.4是基于旧版icu4c编译的,重新编译可让它适配当前系统中的新版本icu4c:
- 卸载现有php@7.4:
brew uninstall php@7.4
- 从源码重新安装php@7.4:
brew install php@7.4 --build-from-source
- 重新链接PHP版本:
brew link --overwrite php@7.4
方案二:安装指定版本的icu4c(71.x)
如果不想重新编译PHP,可安装旧版icu4c并让PHP指向它:
- 提取并安装icu4c 71.x版本(brew官方仓库无旧版时,需自建tap):
brew tap-new yourname/oldformulae brew extract icu4c@71 yourname/oldformulae brew install yourname/oldformulae/icu4c@71
- 切换icu4c版本到71.x:
brew unlink icu4c brew link --overwrite icu4c@71
- 重新链接php@7.4:
brew link --overwrite php@7.4
若需长期保留该版本,可锁定icu4c@71避免被升级:
brew pin icu4c@71
方案三:Time Machine恢复
若使用Time Machine备份,需恢复以下目录至PHP升级前的状态:
/usr/local/Cellar/php@7.4:PHP 7.4的安装目录/usr/local/Cellar/icu4c:旧版icu4c的安装目录/usr/local/opt:对应的符号链接目录
恢复完成后执行brew link --overwrite php@7.4即可。
内容的提问来源于stack exchange,提问作者Barmar
相关产品推荐
相关产品推荐

