核心问题是homebrew默认从github等境外源拉取资源导致超时,需手动切换中科大镜像源:执行三条git命令替换brew、homebrew/core和homebrew/cask远程地址,并设置homebrew_bottle_domain环境变量指向中科大二进制镜像,最后brew update验证生效。
mac 上 homebrew 安装或更新时出现依赖网络超时(如 curl: (7) failed to connect、operation timed out、卡在 updating homebrew...),核心问题不是命令写错,也不是你本地网络断了,而是 homebrew 默认从 github 和 raw.githubusercontent.com 拉取代码仓库和二进制包——这两个域名在国内访问极不稳定。
换掉默认 Git 仓库源
Homebrew 的主仓库(brew)、核心公式库(homebrew/core)和应用列表(homebrew/cask)都托管在 GitHub。必须手动替换成国内镜像地址,否则 brew update 就会反复失败:
- 执行以下三条命令(推荐中科大镜像,同步及时):
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
完成后运行 brew update,如果几秒内完成,说明已生效。
设置二进制包下载镜像
即使元数据源换了,很多软件(比如 visualstudiocode、balenaetcher)的安装包仍直接从 GitHub Releases 下载,这时需要强制走镜像:
- 设置环境变量:
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles - 写入 shell 配置文件避免重启失效:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc && source ~/.zshrc
该变量对大部分 cask 和 formula 的二进制安装包都有效,能显著提升下载成功率。
跳过卡死的 update 步骤
有时 brew install 自动触发 update 后卡住不动,不必等它完成:
- 终端中按
Ctrl + C中断当前 update 进程(你会看到一行^C) - 稍等 2–3 秒,安装流程会自动继续下载目标软件
- 这不是绕过更新,而是跳过阻塞环节——只要元数据源已换好,跳过这次 update 不影响安装
个别软件仍失败?临时改链接
少数 cask(如 wechat、qq)的 url 是硬编码官网地址,不受 HOMEBREW_BOTTLE_DOMAIN 影响:
- 用
brew cask edit wechat打开对应 Ruby 文件 - 找到
url行,把原始官网链接替换成可用镜像链接(例如清华或中科大的归档地址) - 保存后重试
brew install --cask wechat
这类情况较少,先确认是否真因 url 硬编码导致,再动手修改。











