更新后如何将Homebrew回滚至之前状态?需替换哪些目录?
借助TimeMachine回滚Homebrew需替换的目录
要将Homebrew整体回滚至更新前状态,解决icu4c版本不兼容导致的应用运行问题,你需要替换以下与Homebrew核心功能、已安装包直接相关的目录:
必须替换的核心目录
/usr/local/Cellar:存放所有通过Homebrew安装的包本体(包括icu4c、MySQL),是版本回滚的核心/usr/local/Homebrew:Homebrew自身的程序文件,更新操作会改动此目录/usr/local/bin:Homebrew包的可执行文件软链接集合,更新后链接会指向新版本包/usr/local/lib:包含包的库文件(如libicuuc.dylib)及软链接,icu4c版本冲突的根源就在这里/usr/local/opt:存放Homebrew包的版本别名软链接,用于指向Cellar中对应版本的包
按需替换的关联目录
根据你的实际情况选择是否替换:
/usr/local/include:存放包的头文件,若更新后部分编译依赖的头文件被改动,需要回滚/usr/local/share:存放包的共享资源(文档、配置模板等),若应用依赖的资源被更新改动,需要回滚/usr/local/etc:部分Homebrew安装的服务(如MySQL)的配置文件目录,若更新时配置模板被覆盖,需要回滚/usr/local/sbin:若通过Homebrew安装过需要存放在sbin下的工具,需要回滚
无需替换的目录
这些目录与本次Homebrew更新无关,避免误操作:
/usr/local/Caskroom:仅用于Homebrew Cask安装的GUI应用,若未更新相关应用无需替换/usr/local/Frameworks:除非是Homebrew安装的框架,否则无需改动/usr/local/remotedesktop:非Homebrew相关目录,完全不需要碰/usr/local/var:若其中包含MySQL等服务的数据文件(如/usr/local/var/mysql),请勿回滚,避免数据丢失;仅当确认该目录下的运行时文件被更新破坏时再考虑替换
回滚注意事项
- 操作前务必关闭所有相关应用及服务(如执行
brew services stop mysql),防止文件被占用导致回滚失败 - 回滚完成后,运行
brew doctor检查Homebrew状态,确认无异常 - 若担心数据安全,提前备份
/usr/local/var/mysql等重要数据目录
内容的提问来源于stack exchange,提问作者SEJU
相关产品推荐
相关产品推荐

