M芯片MacOS使用原生Homebrew 提升性能

在 Apple Silicon (M) 芯片的 Mac 上,Homebrew 官方支持两种运行模式:

  • 原生模式 (Native):使用 ARM 架构运行,默认路径是 /opt/homebrew。
  • 兼容模式 (Rosetta 2):模拟 Intel 架构运行,默认路径就是你看到的 /usr/local 路径

M系列的Mac 如果以 Intel 兼容模式 运行 Homebrew,这会导致每次安装软件时都要通过 Rosetta 2 翻译,无法发挥 M2 芯片的原生最高性能

从macOS 26.4开始,Mac在打开即将失效的Intel应用时已会显示警告,提醒用户该应用在macOS 28后将无法运行.
苹果官方支持页面(https://support.apple.com/zh-cn/102527?cid=mc-ols-rosetta-article_102527-macos_finder-52526201) 明确写了在iOS28系统(预计 2027 年秋季发布),以后Rosseta功能仅适用特定的游戏, 换句话说Rosseta将在主要场景不再支持了

所以,从2026年开始,homebrew完全可以采用Native方式运行,早期安装的基本都是转译运行的

1.打开终端输入以下两条命令来确认当前的架构和 Homebrew 状态:

1.1查看当前终端架构:

arch
  • 如果输出 i386,说明你当前的终端正在以 Intel 模式运行
  • 如果输出 arm64,说明终端本身是原生的

1.2 查看并确认 Homebrew 详细配置:

brew config

检查输出中的 HOMEBREW_PREFIX 是否为 /usr/local,以及 CPU 栏目是否显示为 Rosetta 2

可以看到,当前电脑homebrew安装在/usr/local路径,走的Rosetta转译, 如果是原生运行路径应该是/opt/homebrew

2.切换回原生版本 Homebrew,删除旧的Homebrew

⚠️注意: 删除旧的 /usr/local 下的 Homebrew 会影响之前通过homebrew安装的软件.

原因是: 旧的架构下,Homebrew 把这些软件的本体和配置文件都集中存放或链接(Link)在 /usr/local 目录下: /usr/local/Cellar 或 /usr/local/Caskroom ,删除 /usr/local 下的 Homebrew相关软件会失效,需要重新安装. 需要根据个人情况评估改动成本.

2.1 先备份当前旧的软件列表

brew bundle dump --file=~/Desktop/Brewfile

旧的 Homebrew 把你已经安装的软件全部打印出来并存成一个文本文件Brewfile,保存到桌面,里面记录了你所有的软件清单


打开Brewfile文件可以看到我的电脑只通过旧的 Homebrew 安装ruby和cocoapods,所以影响很小

2.2 安装原生版(原生版和旧版两者可和平共存)
先关闭终端的“使用 Rosetta 打开”,再使用命令安装homebrew


/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

可以看到原生版本homebrew将要安装在/opt/路径下,按下回车继续安装

2.3 配置环境变量,告诉系统使用/opt/homebrew 原生homebrew
命令homebrew安装完成会自动生成,复制粘贴到终端即可



``
然后输入

which brew

确认新版homebrew安装配置完成


2.4 在新版一键恢复之前备份的软件

brew bundle --file=~/Desktop/Brewfile

运行命令,新版 Homebrew 就会自动读取桌面上的清单,把所有软件以原生 M2 架构(ARM64)重新下载并安装到 /opt/homebrew 中

2.5 4. 安全清理旧版本

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" -- --path=/usr/local
  • Homebrew 官方提供了一个专门的卸载脚本(uninstall.sh)。我们要下载它,并加上 --path=/usr/local 参数,强行指定它只清理旧目录. 最后的 -- --path=/usr/local 是关键。它告诉脚本:“请只去 /usr/local 目录里寻找并清理属于 Homebrew 的文件,不要碰其他地方。”

  • 官方的卸载命令会把旧版的 Homebrew 本体以及所有通过旧版 Homebrew 安装的软件一并彻底卸载干净



    通过日志可以看出官方的卸载脚本存在部分问题:
    日志显示 “Homebrew partially uninstalled (but there were steps that failed)”(Homebrew 已部分卸载,但有部分步骤失败)。这是完全正常的,原因有两个:

    1. 脚本在前半段没有使用管理员权限(sudo),所以删不掉 /etc/paths.d 和 /usr/local/Cellar。
    1. 脚本在最后尝试删除整个 /usr/local 根目录,而苹果系统(macOS)出于系统保护,绝对不允许删除 /usr/local 这个根文件夹本身,所以报错了 Operation not permitted。

所以只需要用管理员权限补上最后两刀,手动删除残留,且绝对不会影响你的新 Homebrew:

sudo rm -rf /etc/paths.d/homebrew /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew

这句作用: 删除旧软件本体和残留核心(解决刚才提示 Permission denied 的那几个目录)

sudo find /usr/local/bin /usr/local/sbin /usr/local/share/man -type l -delete

这句清理失效的旧软件快捷方式:因为旧软件已经没了,我们要把 /usr/local/bin 里指向那些旧软件的、已经失效的“死链接”全部扫干净

当然也可以去对应文件夹手动检查删除


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容