Homebrew国内安装脚本:镜像源配置与避坑指南
简介这份资源是面向国内 macOS 用户的 Homebrew 国内安装脚本合集主要解决官方源下载缓慢、安装失败等痛点适合需要频繁使用命令行工具的开发者和运维人员。压缩包共 12 个文件约 458KB以 5 个 sh 脚本为主涵盖安装、卸载、Git 安装等流程另附 3 个 md 说明文档、2 张运行过程截图、LICENSE 及系统隐藏文件结构清晰便于直接执行。脚本会自动将 Homebrew 源切换为国内镜像并配置相关环境变量从而显著提升安装与更新速度。资源还包含国外版本脚本与错误说明文档方便对比排查问题。目前已有 1206 人学习下载适合希望快速完成 Homebrew 部署、减少等待时间的中初级用户参考使用。1. Homebrew 国内安装脚本为什么你照着官网敲命令总是卡住如果你在 Mac 上敲过官网那行安装命令大概率见过两种结局要么卡在Cloning into /usr/local/Homebrew...一动不动要么直接报Failed to connect to raw.githubusercontent.com port 443。这不是你网络的问题也不是命令敲错了而是 Homebrew 的安装脚本默认从境外源拉取仓库和二进制包国内直连基本靠运气。所谓「Homebrew 国内安装脚本」本质就是把官方 install.sh 里的仓库地址、API 域名、二进制瓶bottle下载源替换成国内可达的镜像让整个安装链路在本地网络环境下能跑通。它解决的是「mac 安装 homebrew 失败」这个高频痛点适合三类人刚拿到新 Mac 想快速配好开发环境的新手、被墙外源反复折磨的老用户、以及需要批量给团队机器初始化环境的运维。下面我按自己踩过的坑把选源、装、配、排错整条链路讲清楚。2. 国内安装脚本到底改了什么镜像源与安装链路拆解2.1 官方安装脚本的三段网络请求要理解国内脚本为什么有效得先知道官方 install.sh 干了哪三件事。第一段它用git clone把Homebrew/brew仓库拉到本地这是最常卡住的地方因为 GitHub 的 raw 和 git 协议在国内经常超时。第二段它把Homebrew/homebrew-core等核心仓库 clone 下来这些仓库体积大直连几乎不可能完成。第三段安装完成后brew install下载的预编译二进制包bottle默认从ghcr.io拉取同样慢。国内安装脚本的思路很直接把这三段请求的地址全部换成国内镜像。常见做法是使用中科大USTC、清华TUNA或阿里云的镜像。以中科大为例它同时提供 git 仓库镜像和 bottle 镜像覆盖了完整链路。清华源的优势是文档全、更新及时阿里云源在企业内网环境下稳定性更好。选哪个没有绝对答案我一般先试中科大不通再换清华。提示镜像源不是越多越好混用不同镜像的 git 和 bottle 地址偶尔会出现版本对不上的玄学问题建议 git 和 bottle 用同一家。2.2 环境变量注入脚本的核心机制国内脚本真正做的事是在安装前把一组环境变量导出到当前 shell让 Homebrew 的安装器和后续的 brew 命令都读取这些变量。关键变量有四个变量名作用典型值HOMEBREW_BREW_GIT_REMOTE指定 brew 主仓库的 git 地址中科大 brew.git 镜像HOMEBREW_CORE_GIT_REMOTE指定 core 仓库的 git 地址中科大 homebrew-core.git 镜像HOMEBREW_API_DOMAIN指定 API 域名新版 brew 用它查包信息中科大 API 镜像地址HOMEBREW_BOTTLE_DOMAIN指定 bottle 二进制包下载源中科大 bottles 镜像地址这四个变量覆盖了前面说的三段请求。脚本通常还会设置HOMEBREW_NO_AUTO_UPDATE1避免安装过程中自动更新又去连境外源。理解这几个变量后面出问题你才知道该查哪个。2.3 手动执行与脚本执行的差别很多人以为必须下载一个「脚本文件」才能装其实这些环境变量你手动 export 再跑官方 install.sh 效果一样。脚本只是把这一串 export 和安装命令打包了。手动执行的好处是每一步你都看得见出问题好定位脚本执行的好处是快、可复用。我建议第一次装的时候手动来一遍搞清楚每个变量在干嘛之后再写成脚本给团队用。3. 手把手跑通国内源安装从零到 brew 可用3.1 安装前的环境检查动手前先确认两件事。一是你的 Mac 有没有装 Xcode Command Line ToolsHomebrew 依赖它里面的编译工具。终端执行xcode-select -p如果返回一个路径说明已装如果报错先执行xcode-select --install弹窗点安装等它下完。二是确认你的 shell 类型这决定环境变量写哪个配置文件echo $SHELL返回/bin/zsh就是 zshmacOS 默认返回/bin/bash就是 bash。后面配置持久化环境变量时zsh 写~/.zshrcbash 写~/.bash_profile。这一步别跳过我见过有人变量写错文件装完重启终端又失效了回头找半天原因。3.2 用中科大源手动安装的完整命令下面这套命令是我在多个 macOS 版本上验证过的逐段执行别一次性粘贴# 1. 设置 brew 主仓库和 core 仓库的 git 镜像 export HOMEBREW_BREW_GIT_REMOTEhttps://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTEhttps://mirrors.ustc.edu.cn/homebrew-core.git # 2. 设置 API 域名和 bottle 下载源 export HOMEBREW_API_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles/api export HOMEBREW_BOTTLE_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles # 3. 关闭安装过程中的自动更新避免又去连境外源 export HOMEBREW_NO_AUTO_UPDATE1 # 4. 执行官方安装脚本此时它会读取上面的变量走镜像 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)逻辑说明前四行 export 只对当前终端会话生效第五行才是真正触发安装。安装脚本内部会读取HOMEBREW_BREW_GIT_REMOTE等变量把原本指向 GitHub 的 clone 操作重定向到中科大。参数说明HOMEBREW_API_DOMAIN是较新版本 brew 才用的老版本可能忽略它不影响安装HOMEBREW_NO_AUTO_UPDATE1建议保留能省掉很多等待。注意第四步的 install.sh 本身还是从 raw.githubusercontent.com 拉的如果这一步就卡住说明你连脚本都下不下来。解决办法是换用国内镜像托管的 install.sh或者先配置好能访问该域名的网络环境再执行。3.3 安装后把环境变量固化到配置文件上面 export 的变量关掉终端就没了brew install时又会去连境外 bottle 源。所以装完必须把它们写进 shell 配置文件。zsh 用户执行# 把镜像配置追加到 ~/.zshrc cat ~/.zshrc EOF export HOMEBREW_BREW_GIT_REMOTEhttps://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTEhttps://mirrors.ustc.edu.cn/homebrew-core.git export HOMEBREW_API_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles/api export HOMEBREW_BOTTLE_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles export HOMEBREW_NO_AUTO_UPDATE1 EOF # 让配置立即生效 source ~/.zshrc逻辑说明cat 是追加写入不会覆盖你已有的配置。用 EOF这种 heredoc 写法单引号保证变量名不被提前展开。写完 source 一下当前终端就生效了。参数说明如果你用的是 bash把~/.zshrc换成~/.bash_profile即可。这一步做完可以执行brew config看输出里的HOMEBREW_BOTTLE_DOMAIN是否指向了镜像确认配置生效。3.4 验证安装是否真的走通了装完别急着用先跑三条验证命令# 1. 看 brew 版本和配置 brew config # 2. 装一个小包测试 bottle 下载是否走镜像 brew install wget # 3. 看 wget 是否可用 wget --versionbrew config会打印一堆配置重点看HOMEBREW_BOTTLE_DOMAIN和HOMEBREW_API_DOMAIN两行是不是你的镜像地址。brew install wget是压力最小的实测如果几秒内开始下载且速度正常说明 bottle 源配对了。如果这里又卡住回到 3.3 检查变量有没有写对文件、有没有 source。4. 换源、卸载与残留清理那些没人告诉你的坑4.1 换源后 brew update 报错的排查换了镜像源之后brew update偶尔会报fatal: unable to access ...或者Not a git repository。现象是更新直接失败原因通常是之前用官方源装过本地 git 仓库的 remote 还指向 GitHub而你只改了环境变量没改 remote。解决办法是手动改 remote# 进入 brew 仓库目录改 remote 地址 git -C $(brew --repository) remote set-url origin https://mirrors.ustc.edu.cn/brew.git # core 仓库同理 git -C $(brew --repository homebrew/core) remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git改完再brew update就正常了。这个坑的根源是环境变量只影响新 clone不影响已存在的仓库 remote。4.2 卸载 Homebrew 与残留目录清单「homebrew卸载残留」是高频搜索词因为官方卸载脚本删不干净。官方脚本只删主目录但缓存、日志、配置散落在多处。彻底清理要手动删这几个位置路径内容是否必删/opt/homebrewApple Silicon或/usr/local/HomebrewIntelbrew 主目录是~/Library/Caches/Homebrew下载缓存可能几个 G是~/Library/Logs/Homebrew安装日志建议~/.zshrc里的 HOMEBREW 变量环境变量残留是清理命令# Apple Silicon 机器 rm -rf /opt/homebrew rm -rf ~/Library/Caches/Homebrew rm -rf ~/Library/Logs/Homebrew # 然后手动编辑 ~/.zshrc删掉所有 HOMEBREW_ 开头的行注意删/opt/homebrew前确认没有其他工具依赖它比如某些通过 brew 装的命令行工具。删完记得把~/.zshrc里相关的 PATH 配置也清掉否则新终端会报command not found之类的 PATH 错误。4.3 避坑清单五个真实翻车记录现象一安装卡在Cloning into /opt/homebrew...超过十分钟。原因环境变量没生效脚本还在连 GitHub。解决确认 export 命令和 install.sh 在同一个终端会话执行中间没开新窗口。现象二brew install报Error: SHA256 mismatch。原因混用了不同镜像的 git 源和 bottle 源导致包元数据和二进制对不上。解决git 和 bottle 统一用同一家镜像清掉~/Library/Caches/Homebrew重试。现象三装完新开终端brew命令找不到。原因Apple Silicon 的 brew 装在/opt/homebrew/bin这个路径没加进 PATH。解决在~/.zshrc加eval $(/opt/homebrew/bin/brew shellenv)source 生效。现象四brew update提示homebrew-core is a shallow clone。原因国内镜像的 core 仓库是浅克隆brew 想转成完整克隆。解决执行git -C $(brew --repository homebrew/core) fetch --unshallow或者忽略这个提示不影响使用。现象五卸载后重装报目录已存在。原因上次卸载没删干净残留目录让安装脚本以为已装。解决按 4.2 的清单彻底删干净再重装。5. 把安装脚本写成团队可复用的一键方案单人装一次手动敲命令没问题但如果你要给团队十几台机器初始化或者自己经常重装系统就该把它固化成一个脚本。我的习惯是写一个install-brew.sh把环境检查、变量设置、安装、验证串起来新机器上bash install-brew.sh一把梭。核心结构是这样#!/bin/bash set -e # 任何一步失败就退出避免带病往下跑 # 1. 检查 Xcode CLT if ! xcode-select -p /dev/null 21; then echo 请先安装 Xcode Command Line Tools xcode-select --install exit 1 fi # 2. 设置镜像变量这里用中科大可换成清华 export HOMEBREW_BREW_GIT_REMOTEhttps://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTEhttps://mirrors.ustc.edu.cn/homebrew-core.git export HOMEBREW_API_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles/api export HOMEBREW_BOTTLE_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles export HOMEBREW_NO_AUTO_UPDATE1 # 3. 执行安装 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) # 4. 把变量写入 zshrc幂等先删旧的再加 sed -i /HOMEBREW_/d ~/.zshrc 2/dev/null || true cat ~/.zshrc EOF export HOMEBREW_BREW_GIT_REMOTEhttps://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTEhttps://mirrors.ustc.edu.cn/homebrew-core.git export HOMEBREW_API_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles/api export HOMEBREW_BOTTLE_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles export HOMEBREW_NO_AUTO_UPDATE1 eval $(/opt/homebrew/bin/brew shellenv) EOF echo 安装完成请执行 source ~/.zshrc 生效这个脚本有两个细节值得说。set -e保证任何一步失败立即停不会出现「Xcode 没装却硬装 brew」的连锁错误。第 4 步的sed -i 是 macOS 特有的写法Linux 上是sed -i先删掉旧的 HOMEBREW 行再追加保证脚本重复执行不会把配置写重复这叫幂等。最后那行eval $(/opt/homebrew/bin/brew shellenv)是 Apple Silicon 机器必须的它把 brew 的 bin 目录加进 PATH不加的话新终端里 brew 命令找不到。验证脚本是否成功不用重装跑一条brew doctor就行。它会检查你的 brew 环境有没有问题输出Your system is ready to brew.就说明一切正常。如果它报一堆 warning按提示逐条处理大部分是 PATH 或权限问题。我自己的习惯是把这个脚本和一份Brewfile放一起。Brewfile里列出团队统一要装的工具脚本装完 brew 后自动brew bundle新机器从开箱到环境齐活十分钟内搞定。这套东西我用了两年多唯一一次翻车是某台机器之前装过旧版 brewremote 没改导致 update 失败按 4.1 的方法改 remote 就好了。所以脚本里最好再加一步检测已有安装、自动改 remote 的逻辑才算真正健壮。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

2022版RoLabelImg在Windows上旋转框标注实战:安装、避坑与DOTA导出

2022版RoLabelImg在Windows上旋转框标注实战:安装、避坑与DOTA导出

简介:2022-RoLabelImg 是一款面向计算机视觉与机器学习研发者的图像标注工具,尤其适合从事目标检测、自动驾驶等方向的研究人员与开发者使用。该版本针对 Windows 环境做了专门优化,修复了以往安装与运行中可能出现的兼容性故障,解…

2026/10/12 12:40:54 阅读更多 →
PS5全场景适配指南:外设、存储、显示与串流优化

PS5全场景适配指南:外设、存储、显示与串流优化

看到“AnyPS5”这个标题的时候,我第一反应是做一套完整的PS5全场景适配手册。这几年我在玩家社群里看到最多的求助帖,几乎都绕不开同一类问题:为什么电视上画面发灰?为什么外接键盘鼠标在部分游戏里不生效?为什么加了M…

2026/10/12 12:40:54 阅读更多 →
EPLAN图纸标准化体系解析:TS-0010915结构标准与项目迁移指南

EPLAN图纸标准化体系解析:TS-0010915结构标准与项目迁移指南

简介:特斯拉TS-0010915 EPLAN电气图纸和结构标准中文版,是面向电气设计工程师、EPLAN绘图人员及特斯拉供应链技术团队的规范文档,用于统一电气图纸的作图结构、页码命名与交付要求。文档涵盖基本信息、电气设计标准化、相关特斯拉标准、交付要…

2026/10/12 12:39:53 阅读更多 →

最新新闻

website-rebuild-skill 源码化阶段:如何把逐字移植的机器产物重构成人能读的工程

website-rebuild-skill 源码化阶段:如何把逐字移植的机器产物重构成人能读的工程

【免费下载链接】website-rebuild-skill 复刻网站的 Agent Skill:抓只读镜像、从压缩代码逐行还原、自动比对验收。An agent skill that mirrors a website, rebuilds it from the minified code, and verifies the result with automated diffs. 项目地址&#xff…

2026/10/12 13:41:54 阅读更多 →
基于SpringBoot的大健康养老公寓管理系统:从毕设选题到答辩全攻略

基于SpringBoot的大健康养老公寓管理系统:从毕设选题到答辩全攻略

1. 为什么选“大健康养老公寓管理”这个题目每年到这个时间点,总有同学来找我聊毕业设计的事,问得最多的就是:有没有合适的题目推荐?要求还五花八门——好过审、工作量够、技术栈主流、最好还能润色到简历里。我通常会反问一句&am…

2026/10/12 13:41:54 阅读更多 →
CAD二次开发中点在多边形内的高精度实时判断方案

CAD二次开发中点在多边形内的高精度实时判断方案

1. 这不是数学题,是CAD里每天都在发生的“位置判断”实战在CAD二次开发的实际项目中,“点是否在多边形内”绝不是教科书里一个画个示意图就能打发的几何问题——它是某高校土木系BIM协同平台里构件自动归类的触发条件,是某工业设计公司电缆布…

2026/10/12 13:41:54 阅读更多 →
动态规划空间压缩实战:前缀和与后缀最大值求解两段不重叠子数组最大和

动态规划空间压缩实战:前缀和与后缀最大值求解两段不重叠子数组最大和

1. 从一道“数学考试”题看动态规划的空间压缩技巧“数学考试”这个标题乍一看像是讲备考策略,实际上它是一道经典的算法题,出现在某在线编程平台的每日一题栏目中。题目的核心是:给定一个长度为 n 的整数序列,要求选出两个不重叠…

2026/10/12 13:41:54 阅读更多 →
NGS-GNN:面向临床响应预测的图神经网络实战

NGS-GNN:面向临床响应预测的图神经网络实战

简介:本资源是一个面向生物信息学初学者与机器学习实践者的轻量级教学项目,聚焦于下一代测序(NGS)数据分析与Python建模的交叉实践。项目以Jupyter Notebook为核心载体,提供可复现的端到端分析流程,涵盖环境…

2026/10/12 13:41:54 阅读更多 →
C语言播放《下山》:从Beep到WAV的音频编程全解析

C语言播放《下山》:从Beep到WAV的音频编程全解析

前段时间在编程群里看到有人甩了个标题:「疯狂的往左」用 C 语言播放《下山》。一看名字就知道,这是典型的整活向练手题——不用图形界面,不用现成的音乐库,纯粹拿 C 语言的朴素能力让电脑把这首国风歌“唱”出来。我第一次见这种…

2026/10/12 13:40:52 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →