You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:

  1. 卸载现有php@7.4:
brew uninstall php@7.4
  1. 从源码重新安装php@7.4:
brew install php@7.4 --build-from-source
  1. 重新链接PHP版本:
brew link --overwrite php@7.4

方案二:安装指定版本的icu4c(71.x)

如果不想重新编译PHP,可安装旧版icu4c并让PHP指向它:

  1. 提取并安装icu4c 71.x版本(brew官方仓库无旧版时,需自建tap):
brew tap-new yourname/oldformulae
brew extract icu4c@71 yourname/oldformulae
brew install yourname/oldformulae/icu4c@71
  1. 切换icu4c版本到71.x:
brew unlink icu4c
brew link --overwrite icu4c@71
  1. 重新链接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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:22:44