news 2026/10/2 11:49:22

macOS Homebrew安装慢?国内镜像源加速方案全攻略(覆盖Intel与M芯片)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
macOS Homebrew安装慢?国内镜像源加速方案全攻略(覆盖Intel与M芯片)

在 macOS 上折腾开发环境,你迟早会跟 Homebrew(也就是大家常说的 brew)打交道。但很多人第一次用 brew,都卡在同一个地方:安装慢、下载慢、更新慢,跑个brew install能把人急出白头发。尤其是热搜词里那些 “mac 安装 brew”“Intel 安装 brew” 的高频搜索,本质上都是同一个需求:怎么让 brew 在国内的网络环境下也能顺利跑起来。这篇不谈理论,直接把我折腾过、验证过的加速方案整理出来,从安装到换源、从配置到排错,照着抄就行。

先说清楚一个事实:brew 本身并不慢,慢的是它默认去访问的服务器。Homebrew 的代码仓库在 GitHub,预编译软件包(bottle)放在 ghcr.io,API 数据也在 GitHub 上。这些服务在国内网络环境下经常连不上或者极其缓慢,于是就有了“brew 安装慢”这个经典问题。解决方案也很明确:把 brew 的下载地址切换到国内可直连的镜像源。下面从原理到实操一步步来。

1. 为什么 brew 安装会慢到让人抓狂

1.1 慢在哪一步:先搞清楚瓶颈

很多人遇到 brew 慢,第一反应是“换个源”,但换了之后依然卡。原因很简单,没找到真正的瓶颈。brew 慢通常发生在三个环节,对应三个完全不同的网络请求地址:

  • 安装脚本本身:官方安装脚本install.sh存放在raw.githubusercontent.com上,这个域名在国内访问经常超时,卡住的第一站就是它。
  • 仓库数据:Homebrew 及其核心仓库homebrew-core、homebrew-cask存放在 GitHub,git clone和git fetch都需要访问 GitHub。
  • 软件预编译包(bottle):安装软件时下载的二进制压缩包存放在ghcr.io(GitHub Container Registry)。这个域名在国内的连通性更差,经常是下载到一半就断掉。

所以,一个完整的加速方案要覆盖这三个环节:安装脚本换源或手动安装、仓库地址换源、bottle 下载地址换源。只处理其中一个,另一个问题很快就会冒出来。

1.2 芯片不同,安装路径完全不同

在动手之前必须先确认你的 Mac 是 Intel 还是 Apple Silicon,因为 brew 的安装路径和后续操作路径完全不同。这个区分也对应了热搜词里的 “Intel 安装 brew” 和 “M 芯片安装 brew”。

Apple Silicon(M1、M2、M3、M4 等)的 brew 默认安装在/opt/homebrew,命令路径是/opt/homebrew/bin/brew。Intel Mac 的 brew 默认安装在/usr/local,软链接在/usr/local/bin/brew。如果你照着网上的教程复制粘贴,最典型的翻车事故就是把/opt/homebrew的命令原封不动用在 Intel 机器上,结果bash: /opt/homebrew/bin/brew: No such file or directory。

查看芯片型号最简单的方法是在终端执行:

uname -m

输出arm64就是 Apple Silicon,输出x86_64就是 Intel。记住这个结果,后面所有命令都要据此区分。

2. 安装 brew 阶段如何加速

2.1 安装前的必备检查

安装 brew 之前,有几个前置条件需要确认,否则安装过程会中途失败。

首先,macOS 必须已经安装了 Command Line Tools(命令行工具)。brew 依赖 Git、curl 等基础工具。如果没装,执行brew --version会提示你先安装,比较省事的方式是执行:

xcode-select --install

系统会弹出图形化安装界面,耐心等它装完即可。如果这个命令报错说软件源不可用,也可以直接从 Apple 开发者官网下载对应版本的 Command Line Tools 安装包手动安装。

其次,确认你的 Git 版本不要太老。可以在终端里看:

git --version

如果 Git 版本过低,brew 装完后可能会报一些奇怪的错误,升级 Git 也很让人头疼。好在多数新 macOS 自带版本都够用。

2.2 使用国内镜像安装脚本,一次到位

官网推荐的安装命令是:

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

这条命令在国内环境经常连raw.githubusercontent.com都访问不了,更不用说后面的仓库拉取了。我建议直接用国内镜像脚本。

以中科大镜像为例,它的安装脚本会自动设置好环境变量,再调用官方安装流程。Intel 和 Apple Silicon 都能用:

/bin/bash -c "$(curl -fsSL https://mirrors.ustc.edu.cn/misc/brew-install.sh)"

这个脚本执行后,会自动把 brew 相关的远程仓库地址指向中科大镜像,整个过程显著提速。实测下来,原来可能卡死 10 分钟以上的安装脚本,换成镜像后一般在 1 到 2 分钟内就能完成。

阿里云镜像也提供了类似的安装引导,路径是:

/bin/bash -c "$(curl -fsSL https://mirrors.aliyun.com/homebrew/install.sh)"

清华大学的镜像则推荐你先设置环境变量,再执行官方脚本:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles" export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

之所以推荐中科大镜像脚本,是因为它把环境变量设置都封装进去了,对新手最友好。但要注意:脚本执行完后会提示你把环境变量写到 shell 配置文件里,这一步千万别跳过。

2.3 手动 git clone 安装(备选方案)

如果自动安装脚本因为各种奇怪原因失败,还有一个备选方案:手动从镜像仓库 clone 整个 brew 仓库。

Apple Silicon 机器执行:

sudo mkdir -p /opt/homebrew sudo chown -R "$USER":admin /opt/homebrew git clone --depth=1 https://mirrors.ustc.edu.cn/brew.git /opt/homebrew

Intel 机器执行:

sudo mkdir -p /usr/local/Homebrew sudo chown -R "$USER":admin /usr/local/Homebrew git clone --depth=1 https://mirrors.ustc.edu.cn/brew.git /usr/local/Homebrew

然后手动创建命令入口。Apple Silicon 执行:

sudo ln -s /opt/homebrew/bin/brew /usr/local/bin/brew

其实 Apple Silicon 机器不需要把 brew 软链到/usr/local/bin,因为/opt/homebrew/bin加进 PATH 就可以直接用了。在~/.zshrc里加入:

export PATH="/opt/homebrew/bin:$PATH"

Intel 机器如果git clone出来的目录里有bin/brew,可以用软链接方式把命令暴露出来:

sudo ln -s /usr/local/Homebrew/bin/brew /usr/local/bin/brew

手动 clone 的坏处是没有安装脚本里那些辅助逻辑,后续 core、cask 仓库都要自己配置,所以只建议作为自动脚本失败时的兜底方案。

3. 安装完成后的换源加速

3.1 4.0 新机制:API 源比 core 源更关键

Homebrew 在 4.0 版本之后做了个重要改动:默认不再通过git clone整个homebrew-core仓库来获取软件信息,而是通过 JSON API 按需拉取。这意味着HOMEBREW_CORE_GIT_REMOTE的作用在变小,真正影响速度的是HOMEBREW_API_DOMAIN。

很多老教程还在让你只配 core 仓库,配完发现 brew install 依然慢,就是因为 API 拉取的地址还是官方的https://formulae.brew.sh/api。虽然这个地址相对稳定,但在国内也有明显延迟。正确的做法是把 API 域名一起换成镜像源。

所以下面给出的环境变量里,HOMEBREW_API_DOMAIN和HOMEBREW_BOTTLE_DOMAIN是最关键的两个,HOMEBREW_BREW_GIT_REMOTE负责 brew 自身的更新,也不可或缺。

3.2 环境变量换源法(中科大/清华/阿里/腾讯)

最推荐、也最干净的做法是直接设置 shell 环境变量。把下面任一方案追加到你的 shell 配置文件。macOS Catalina 之后默认 shell 是 zsh,配置文件是~/.zshrc;如果你还在用 bash,就写进~/.bash_profile。

中科大源:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"

清华源:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git" export HOMEBREW_CASK_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles" export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"

阿里云源:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/homebrew-core.git" export HOMEBREW_CASK_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/homebrew-cask.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.aliyun.com/homebrew/homebrew-bottles" export HOMEBREW_API_DOMAIN="https://mirrors.aliyun.com/homebrew/homebrew-bottles/api"

腾讯云源:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.cloud.tencent.com/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.cloud.tencent.com/homebrew/homebrew-core.git" export HOMEBREW_CASK_GIT_REMOTE="https://mirrors.cloud.tencent.com/homebrew/homebrew-cask.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.cloud.tencent.com/homebrew/homebrew-bottles" export HOMEBREW_API_DOMAIN="https://mirrors.cloud.tencent.com/homebrew/homebrew-bottles/api"

设置完执行source ~/.zshrc让配置立即生效。然后跑一句:

brew update --force

强制让 brew 从新源重新拉取数据。执行过程里注意观察输出,看看仓库地址是否已经变成镜像域名。

3.3 顺手优化的两个环境变量

除了换源,还有两个环境变量值得顺手加上,能大幅改善日常使用体验。

第一个是HOMEBREW_NO_AUTO_UPDATE=1。brew 在每次执行安装命令前都会尝试自动更新自己,这个行为在国内网络下经常导致命令卡住好几分钟。关闭自动更新后,brew install的响应速度会明显提升,需要更新时手动执行brew update即可。

第二个是HOMEBREW_NO_INSTALL_CLEANUP=1。旧版本 brew 每次安装完会做清理,新版本默认策略已经变了,但如果你的版本还在自动清理,也可以显式关掉。顺手加这两个变量:

export HOMEBREW_NO_AUTO_UPDATE=1 export HOMEBREW_NO_INSTALL_CLEANUP=1

此外,HOMEBREW_NO_ANALYTICS=1可以关闭匿名统计上报,既省一点流量,也减少一次网络请求:

export HOMEBREW_NO_ANALYTICS=1

都写完后的~/.zshrc大概是这个样子:

export PATH="/opt/homebrew/bin:$PATH" export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api" export HOMEBREW_NO_AUTO_UPDATE=1 export HOMEBREW_NO_INSTALL_CLEANUP=1 export HOMEBREW_NO_ANALYTICS=1

4. 安装软件时的其他提速技巧

4.1 bottle 下载加速

换源后,brew install下载的软件包走的是HOMEBREW_BOTTLE_DOMAIN指向的镜像。这一步是安装软件时的最大流量来源,也最容易出问题。

可以验证一下某个软件的下载地址是否已经变成镜像:

brew info wget

输出信息里会标明From: https://mirrors.ustc.edu.cn/homebrew-bottles/...之类的地址,说明 bottle 源生效了。如果显示的还是ghcr.io开头的地址,说明环境变量没生效,检查~/.zshrc是否加载、新终端是否重开。

4.2 强制用预编译包避免源码编译

brew 理论上偏爱预编译的 bottle,但在某些情况下会尝试从源码编译。比如你指定了--build-from-source,或者该软件没有提供适配你系统的 bottle。源码编译的时间往往非常长,动辄十几分钟,对网络要求其实不高,但对耐心要求极高。

正常情况下如果本地已经有 bottle,可以直接强制使用:

brew install --force-bottle wget

这条命令会强制使用预编译包,不进行源码编译。如果你的机器是 Intel Mac,而某个软件官方已经停止提供 Intel 版 bottle,那无论网速多快都只能源码编译,这种情况只能等,或者换一个功能相近的软件。

4.3 用 brew -v 定位卡点,告别白等

很多人遇到brew install卡住就急得跺脚,其实可以先看它到底卡在哪一步。常用调试方式是:

brew install -v wget

-v参数会输出详细的下载日志,包括正在请求的 URL、当前下载进度。如果卡在下载 URL 上,说明源有问题;如果卡在处理依赖上,可能是依赖没装好;如果卡在编译上,说明在编译源码。看清卡点再对症下药,比盲目重试高效得多。

5. 实操记录:从零到装完 wget 的全过程

5.1 现场实录

拿一台空的 Intel Mac 举例,完整跑一遍加速流程。终端先看架构:

uname -m

输出x86_64。安装命令行工具:

xcode-select --install

弹窗后确认安装,等它完成。然后执行中科大安装脚本:

/bin/bash -c "$(curl -fsSL https://mirrors.ustc.edu.cn/misc/brew-install.sh)"

脚本跑完会在终端末尾提示添加环境变量。按提示把下面内容写入~/.zshrc:

export PATH="/usr/local/bin:$PATH" export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api" export HOMEBREW_NO_AUTO_UPDATE=1

注意 Intel 机器上 Homebrew 会提示你加/usr/local/bin到 PATH。执行:

source ~/.zshrc

然后看一眼版本:

brew --version

能正常输出版本号,说明核心安装成功。接着装一个最常用的 wget:

brew install wget

全程盯着输出,下载阶段可以看到从mirrors.ustc.edu.cn拉取 bottle 的信息。整个安装过程在一两分钟内结束,对比之前动不动就卡死的体验,差异非常明显。

Apple Silicon 机器上的流程几乎一样,只是脚本执行完后 PATH 要写/opt/homebrew/bin,仓库目录也是/opt/homebrew,其余命令相同。

5.2 如何验证源已经生效

安装完之后,可以用几个命令确认所有源确实都切到了镜像:

brew doctor brew config

brew config的输出里会列出当前生效的各种地址变量。重点看这几行:

  • HOMEBREW_BREW_GIT_REMOTE:应该指向镜像仓库。
  • HOMEBREW_BOTTLE_DOMAIN:应该指向镜像的 bottles 地址。
  • HOMEBREW_API_DOMAIN:应该指向镜像的 API 地址。

如果哪一项显示为官方 GitHub 地址,说明对应的环境变量没写对或没重新加载配置,回到~/.zshrc检查。

brew doctor如果输出Your system is ready to brew,恭喜你,brew 已经处于健康可用的状态。

6. 典型问题排查与避坑指南

6.1 常见错误对照表

我把实际踩过、以及在群里看到别人踩过的高频问题整理成一张表,方便快速对照:

症状可能原因处理方法
安装脚本提示curl: (7) Failed to connect to raw.githubusercontent.com安装脚本源被卡住改用中科大brew-install.sh脚本
brew install卡在Updating Homebrew...自动更新导致HOMEBREW_NO_AUTO_UPDATE=1或手动brew update
下载软件时进度条长时间不动bottle 源还是官方地址检查HOMEBREW_BOTTLE_DOMAIN是否生效
Error: No such file or directory @ rb_sysopen安装路径不对重新确认芯片架构,路径写成/opt/homebrew还是/usr/local
Permission denied或cannot overwrite directory目录权限不对用sudo chown -R "$USER":admin修复 Homebrew 目录权限
command not found: brewPATH 没配置好把对应路径写入~/.zshrc并source

6.2 换源后想还原官方源怎么办

不想一直用镜像源,或者某个镜像临时抽风想切回官方,不用重装 brew。只要把~/.zshrc里的相关环境变量删掉,再恢复仓库的远端地址就行。

先解除环境变量干扰,重新打开终端会自动失效,或者手动执行:

unset HOMEBREW_BREW_GIT_REMOTE unset HOMEBREW_CORE_GIT_REMOTE unset HOMEBREW_BOTTLE_DOMAIN unset HOMEBREW_API_DOMAIN

然后进入 brew 安装目录,把 git remote 改回 GitHub:

cd "$(brew --prefix)" git remote set-url origin https://github.com/Homebrew/brew.git

最后执行brew update重新拉取。完整切换回官方源的过程,网上也有很多一键脚本可以偷懒,但不建议直接跑不明来源的脚本,手动改清楚自己心里有数。

6.3 几个我踩过的坑

第一个坑是修改了/usr/local的全局权限。早期教程喜欢让人sudo chown -R $(whoami) /usr/local,把整个目录都改成当前用户所有。这样短期内确实解决了权限报错,但会让 macOS 的系统目录权限变得一团糟,后续升级系统或运行其他软件都可能出问题。正确做法是只对 Homebrew 自己的目录做权限修改,/usr/local里的其他东西别乱动。

第二个坑是忽略了 API 域名。很多人看教程只设置了 brew 和 core 两个仓库地址,装那些不需要源码编译的软件还好,可一旦某个软件需要走 API 拉取信息就会明显变慢。我自己有段时间brew search一直卡顿,后来才发现是 API 域名没换。4.0 之后的版本里,HOMEBREW_API_DOMAIN的价值甚至超过 core 仓库。

第三个坑是把自动更新完全关掉之后长时间不更新。HOMEBREW_NO_AUTO_UPDATE=1确实让日常安装快了很多,但 brew 的软件定义是持续更新的,几个月不更新后,各种依赖关系会变得很陈旧,再执行brew update时反而会因为跨度太大拉取大量数据。建议至少每个月手动执行一次brew update,让容器保持新鲜。

第四个坑是忽略 cask 仓库的配置。如果你经常用brew install --cask安装图形化软件,比如浏览器、编辑器这类,那么HOMEBREW_CASK_GIT_REMOTE也很重要。虽然新版 API 模式让 cask 信息也走接口,但某些老版本或特定场景下还是会直接拉取 cask 仓库,提前配置好能少踩一个坑。

最后一个建议:用完某个镜像源发现速度不理想,就换一个。中科大、清华、阿里云这几个源在不同时间段、不同网络环境下的表现会有差异,没有绝对的最优解。切换源的成本很低,改几行环境变量再执行brew update --force就行,多试几个,找到你自己网络环境下最稳的那个。我个人的习惯是中科大做主力、清华做备用,一条命令就能切换。

另外,如果你身边有朋友装了老版本 brew,建议顺手提醒他执行一次brew update升级到新版本。旧版本和新版本在源配置上差异不小,老教程里的一些方法在新版本里未必适用,避免大家一起踩坑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 11:46:46

电波机芯定制三大核心参数:晶振负载电容、谐振频率与BPC解码容差

电波机芯这个品类,做过的都知道,它不像普通石英钟机芯那样"装上电池就能跑"。很多客户拿着图纸来问,为什么同样的方案,在实验室里走时精准,一到现场就频繁跳秒、对时失败、甚至整批返修。我这些年经手的定制…

作者头像 李华