Mac安装Homebrew全攻略:官方脚本与国内镜像源
2026/9/24 20:18:49 网站建设 项目流程

Mac 上装软件这件事,我早期被折腾得够呛:去官网下载 dmg,拖进 Applications,遇到更新还得重新下载覆盖。后来遇到 brew,也就是 Homebrew,才算是把 Mac 上的软件安装这件事真正理顺了。

Homebrew 是 Mac 上最主流的软件包管理工具,你可以把它理解成 App Store 的命令行版本,但它能管的东西比 App Store 多得多——命令行工具、开发环境、图形软件、字体、甚至一些系统级组件,它都能装、能更新、能卸载。这篇文章写给所有想在 Mac 上安装 brew 的朋友,不管你是刚入行的开发者,还是只是想把 Mac 用得更顺手,我都会把安装流程拆开揉碎讲清楚,包括官方脚本和国内镜像两种方案、环境变量配置、常见报错排查,以及我用 brew 六七年踩过的那些坑。

1. 为什么 Mac 需要 brew:一个包管理工具的价值

1.1 从 App Store 说起:Mac 装软件的两种老路

在 brew 出现之前,Mac 用户装软件基本两条路。一条是去 App Store 搜索下载,但 App Store 里的软件种类有限,尤其开发者常用的命令行工具几乎没有;另一条是去软件官网下 dmg 安装包,双击挂载,然后把图标拖进 Applications 文件夹。第二种方式看着简单,但后续更新很麻烦——你得自己记住从哪下的,隔几个月再去官网看有没有新版本,下载覆盖安装,操作重复度极高。

更麻烦的是依赖问题。你想装一个工具,它依赖另外三个库,另外三个库又依赖更多底层组件。手动一个个装,装到一半报错,你甚至不知道错在哪。这在开发环境里特别常见:装 Python、装 Node、装各种数据库,每一个都有自己的一堆依赖。我在刚接触 Mac 开发时,就曾经为了装一个 PHP 扩展,手动编译了半个小时,最后还因为缺了一个系统库直接失败。

1.2 brew 到底能做什么:从命令行工具到图形软件全覆盖

brew 解决的就是上面这些问题。它会自己处理下载、依赖、更新、卸载,你只需要记住几个简单命令。比如brew install git装 Git,brew install mysql装 MySQL,brew install --cask google-chrome装 Chrome 浏览器。

brew 本身分为两大块。第一块是 brew,也就是 Homebrew 的核心,用于管理命令行工具和开发库,装完后文件通常存放在/opt/homebrew(Apple Silicon 芯片)或/usr/local(Intel 芯片)目录下,由 brew 统一管理,你不用担心系统目录被搞乱。第二块是 Homebrew Cask,用于安装图形界面的 macOS 应用,它会自动下载 dmg 或 pkg 安装包,帮你完成挂载、复制、卸载的全过程,像 Visual Studio Code、Google Chrome、阿里云盘这类应用都能直接通过brew install --cask装好。

另外 brew 还支持 Homebrew Services,专门管理后台服务进程。比如你装了 MySQL 或者 Redis,可以用brew services start mysql启动并设置开机自启,再也不用去找什么mysql.server start或者手动写 launchd 配置了。

1.3 什么人最需要 brew

如果你属于下面任何一种情况,brew 基本就是你绕不开的选择:

  • 开发者,需要安装和切换各种语言运行时、数据库、命令行工具;
  • 设计师或效率用户,经常需要下载安装各类效率软件,希望有个统一的安装入口;
  • 系统洁癖,不想在系统里到处散落安装包残留文件,希望卸载得干净彻底;
  • 需要批量在多台 Mac 上复现同一套软件环境。

我自己的 Mac 上现在有超过两百个软件包是通过 brew 管理的。从终端工具、字体、到图形软件,全部统一管理,重装系统后只需要一个brew bundle命令就能恢复大部分环境,这种体验一旦用上就很难回去了。

2. 安装前的准备:先搞清楚这 3 件事

2.1 你的 Mac 是 Intel 还是 Apple Silicon,路径完全不同

安装 brew 之前,第一件事是确认自己 Mac 的芯片架构。因为 brew 的安装路径和配置方式在 Intel 和 Apple Silicon 上有明显差异。

Apple Silicon 芯片(M1、M2、M3、M4 系列)的 Mac,brew 会安装到/opt/homebrew目录;Intel 芯片的 Mac,brew 会安装到/usr/local目录。这两个路径差别很大,因为/usr/local在 Intel 架构下通常是可写的,而/opt/homebrew是 Apple Silicon 的专属目录。

怎么查自己 Mac 的芯片?点击左上角苹果菜单,选择"关于本机",在"芯片"一栏就能看到。如果是 Apple M1、M2、M3、M4 这类字样,就是 Apple Silicon;如果是 Intel Core i5、i7 之类,就是 Intel。

这个区别很重要。网上很多安装教程写的都是/usr/local路径的老办法,Apple Silicon 用户如果照着抄,很容易在权限上卡住。后面我会详细讲这两种芯片在配置环境变量时的不同写法。

2.2 Xcode Command Line Tools:brew 的隐藏依赖

brew 安装过程中,最大的一个隐藏依赖是 Xcode Command Line Tools。这个工具集包含了 Git、clang 编译器、make 等一堆编译相关的命令行工具,brew 在安装很多软件包时都会用到它们。

好消息是,brew 安装脚本会自动弹出 Xcode Command Line Tools 的安装窗口,你只需要点确认,然后等它装完。坏消息是,这个安装过程比较慢,视网络情况可能需要几分钟到十几分钟,而且没有明显的进度条,很多人在这里以为卡住了,直接关掉窗口导致后续安装失败。

如果你自己装,强烈建议先单独手动安装 Xcode Command Line Tools,避免 brew 安装过程中因为等待而超时。命令很简单:

xcode-select --install

执行后系统会弹窗,点击"安装",同意协议,等它下载完成即可。安装完可以验证一下:

xcode-select -p

如果输出类似/Library/Developer/CommandLineTools的路径,说明已经装好了。顺便说一句,Xcode Command Line Tools 和完整的 Xcode 是两回事。完整 Xcode 几个 G,Command Line Tools 才几百 M,日常用 brew 只需要后者,不要搞混。

2.3 网络与下载源:为什么很多人卡在第一步

brew 安装脚本本身是从 GitHub 拉取的,而 brew 后续安装软件时,默认也要去 GitHub 等海外源下载。对于国内网络环境来说,这就经常出现连不上、下载慢、中断的问题。很多人安装 brew 卡住,十有八九是网络问题。

所以安装前我建议你先想清楚自己要用哪种方式:如果网络环境访问海外资源没问题,用官方脚本直接装就行;如果在国内网络环境下安装,提前准备好国内镜像源。

这里说的镜像源,和某些特殊工具没有任何关系,指的是中科大、清华、阿里云这些高校或云厂商提供的开源软件镜像站。它们把 brew 的安装脚本、软件包仓库、预编译二进制包同步了一份到自己服务器上,国内访问速度就快很多。这也是完全合规的常规操作,很多企业内部的软件分发也是这个思路。

3. 安装 brew 的完整实操:从零到帮着能用

3.1 官方标准安装脚本:最直接的路线

如果你网络环境比较顺畅,直接使用官方脚本是最简单的安装方式。打开终端(Terminal),输入下面这行命令:

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

这个命令的意思是:用 curl 下载 Homebrew 官方安装脚本,然后通过 bash 执行。执行过程中脚本会先检查你的系统环境,提醒你即将安装的位置(Apple Silicon 是/opt/homebrew,Intel 是/usr/local),还会检查 Xcode Command Line Tools 是否安装,没装的话会自动触发安装。

脚本执行到一定步骤会停下来等一个回车确认,然后开始拉取 Homebrew 仓库。这一步就是最考验网速的时候,如果迟迟没有动静,或者出现了curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused这类报错,说明网络连接 GitHub 失败了,不用硬等,直接切换国内镜像源方案。

3.2 国内镜像源安装:中科大、清华、阿里云方案

国内镜像源安装 brew 的核心思路是:先把 Homebrew 的安装脚本下载到本地,然后把脚本里的官方源地址替换成国内镜像站的地址,再本地执行。这样脚本就能从国内快速拉取所有需要的内容。

我用得比较多的是中科大(USTC)的源,镜像同步比较及时,也很稳定。下面是完整的过程。

首先设置镜像环境变量,然后把官方安装脚本下载到本地并执行:

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" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

这里的四个环境变量含义分别是:

  • HOMEBREW_BREW_GIT_REMOTE:Homebrew 主仓库的地址,替换为中科大镜像;
  • HOMEBREW_CORE_GIT_REMOTE:Homebrew 核心软件包仓库地址;
  • HOMEBREW_BOTTLE_DOMAIN:预编译二进制包的下载地址,这个最关键,直接影响软件安装速度;
  • HOMEBREW_API_DOMAIN:新版 Homebrew 的 API 数据接口地址,用于查询软件信息。

执行完这一套,后面安装流程就和官方脚本一样,只是所有网络请求都走了国内镜像,速度会快非常多。整个安装过程如果顺利,通常三五分钟就能完成,具体时长看网速和芯片性能。

如果你更习惯清华或阿里云的源,也可以把上面中科大地址换成对应镜像站的地址,思路完全一致。我这里以中科大为例子,是因为我自己长期使用下来的下载速度和稳定性综合表现最好。

3.3 安装后的关键一步:配置环境变量

安装完成之后,终端会输出一段"Next steps"提示,让你把 brew 加到 shell 环境变量里。这一步很多新手容易漏掉,直接导致输入brew提示command not found

Apple Silicon 芯片的 Mac,在终端执行:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"

Intel 芯片的 Mac,执行:

echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile eval "$(/usr/local/bin/brew shellenv)"

第一行命令是把 brew 的初始化配置写入用户的 zprofile 文件,作用是每次打开终端时自动加载 brew 环境;第二行是让当前终端立刻生效,省的再开一个新窗口。

这里的~/.zprofile是 zsh shell 的用户配置文件。macOS 从 Catalina 开始默认 shell 就是 zsh,所以配的是 zprofile。如果你用的是别的 shell,比如之前的 bash,则可能需要写进~/.bash_profile。不太确定的话,用echo $SHELL查一下自己的默认 shell 是什么就行。

配置完成后,验证一下是否安装成功:

brew --version brew -v

能看到版本号,说明 brew 已经可用了。我再顺手测一下安装软件是否正常,比如装一个常用的命令行工具 wget:

brew install wget

能正常下载安装,说明镜像源配置也生效了。如果这里报错或者下载很慢,多半是环境变量没写入或者镜像源没配好,后面排查章节会细讲。

3.4 安装完成后别忘了切回中科大源

上面 3.2 小节里的环境变量是在执行安装脚本的终端临时生效的,也就是说只对那一次安装过程有效。安装完成后,如果你想以后安装其他软件也能走国内镜像,需要把镜像源配置固化下来。

新建终端,执行:

echo 'export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"' >> ~/.zprofile echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"' >> ~/.zprofile echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"' >> ~/.zprofile echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"' >> ~/.zprofile source ~/.zprofile

然后执行brew update把仓库源信息同步一下:

brew update

这一步会拉取最新软件包索引,走的是国内镜像,正常情况下很快就完成。到这里,brew 的安装和国内源配置就全部结束了,可以正常使用了。

4. 装完之后怎么用:常用操作与日常维护

4.1 高频命令:安装、卸载、查找软件包

brew 的核心命令并不多,背住这几个就能覆盖九成使用场景:

命令作用示例
brew search <名称>搜索软件包brew search mysql
brew install <包名>安装命令行软件brew install git
brew install --cask <包名>安装图形界面应用brew install --cask google-chrome
brew list查看已安装软件brew list
brew uninstall <包名>卸载软件brew uninstall wget
brew update更新 brew 本身和软件源索引brew update
brew upgrade升级所有已安装软件brew upgrade
brew info <包名>查看软件详情brew info mysql
brew services start <服务名>启动后台服务并设置开机自启brew services start mysql

刚上手时,最容易搞混的是普通安装和 cask 安装的区别。简单记:命令行工具用brew install,图形界面 App 用brew install --cask。比如装 MySQL 数据库用普通安装,装 Navicat 这样的数据库管理界面软件就要加--cask

举几个开发环境里常用的真实例子。装 JDK 8:

brew install --cask temurin@8

装 Maven 并配置环境:

brew install maven mvn -version

装 Python、Anaconda、Git:

brew install python git brew install --cask anaconda

一键装好这些,比去官网一个个下安装包省事太多,而且后续升级只需要brew upgrade一条命令,系统路径里也不会残留一堆版本混乱的文件。

4.2 Cask 的使用细节:管理图形软件的正确姿势

Cask 是 brew 的一大杀器,也是很多人容易忽略的部分。通过brew install --cask安装的图形应用,会被统一管理在/Applications目录下,和平时手动拖入的 App 一样出现在启动台里。

卸载 Cask 应用时,brew uninstall --cask <包名>会把 App 本体和相关的偏好设置文件一起清理,比手动把 App 拖进废纸篓干净得多。我用这个命令卸载过不少软件,对比下来残留文件确实少很多。

有的 Cask 应用还支持强制安装,比如--force参数。某个 App 你之前手动装过,又用 brew 再装一遍时可能提示已存在,不想留着旧的就加--force

brew install --cask --force google-chrome

另外提一句,brew 本身没有官方 GUI 客户端,但有几款第三方工具做得还不错,比如一些开源项目会把 brew 的常用操作封装成可视化的界面,方便不熟悉命令行的用户。不过就我个人体验而言,命令行用久了反而更顺手,毕竟一个brew upgrade就打完了,没必要再开一个程序窗口。

4.3 卸载 brew:想干净移除怎么办

brew 用了一阵子想卸载的情况也有,比如你想全部重来。官方提供了卸载脚本:

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

脚本会扫描并删除 brew 安装的所有软件包、缓存文件、日志以及自身目录。执行前它会列出将要删除的文件清单,让你确认一次。确认后,/opt/homebrew(或/usr/local)下的内容会被整体移除,之前通过 brew 装的软件自然也就没了。

要注意的是,卸载 brew 后,它安装的命令行工具和 Cask 应用也会一并删除,如果有需要保留的数据,先备份好。另外,如果你给 brew 配过镜像源环境变量,就是在 zprofile 里写的那些 export 行,卸载后也可以顺手删掉,保持 shell 配置干净。

5. 常见问题与排查实录

5.1 安装卡住或报错:443、curl、权限问题

我在帮朋友装 brew 的过程中,遇到过太多安装失败的案例,绝大多数都是下面这几个问题:

第一种是curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused或者curl: (28) Operation timed out。这是下载官方安装脚本时连接 GitHub 失败。解决方案就是换成国内镜像源方案,直接把脚本下载后,配合镜像站环境变量执行。如果你已经在执行过程中卡住,Ctrl + C终止掉,然后从 3.2 节重新开始就行。

第二种是Error: /opt/homebrew is not writable,或者Permission denied的报错。这种情况多半是因为系统给/opt/homebrew目录设了权限限制,或者你之前安装时中断导致目录归属错误。解决方法是把目录权限改回给当前用户:

sudo chown -R "$USER":admin /opt/homebrew

执行后再重新运行安装脚本。Intel 芯片的话,把路径换成/usr/local即可。

第三种是安装过程中卡在==> Tapping homebrew/core这一步不动。这种情况大多是网络问题,GitHub 仓库拉取卡住了。解决办法还是走镜像源,或者直接中断后重新配好镜像环境变量再执行安装。

5.2 装完用不了:command not found 和源切换失效

安装成功但输入brew提示command not found,不用怀疑,就是环境变量没有生效。回到 3.3 节,检查一下~/.zprofile文件内容:

cat ~/.zprofile

如果里面没有eval "$(/opt/homebrew/bin/brew shellenv)"这一行,说明之前写入失败了,或者你写的路径不对。Apple Silicon 的 brew 路径是/opt/homebrew/bin/brew,Intel 的是/usr/local/bin/brew,别搞混。补上之后source ~/.zprofile即可。

还有一种情况是 brew 能用了,但下载软件还是慢,这多半是镜像源环境变量没配到 shell 配置文件里。你在当前终端手动 export 的环境变量,关闭窗口就失效了,下次新开的终端还是走默认官方源。解决方法是把 export 写进~/.zprofile,方法看 3.4 节。

5.3 安装时间太长或卡住不动:耐心和策略

很多人关心 brew 安装到底要多久。这里我给个参考:如果 Xcode Command Line Tools 已经装好,网络顺畅的情况下,Apple Silicon 芯片安装 brew 本体通常三五分钟就完事;但如果 Xcode Command Line Tools 需要现场安装,再加上网络一般,整个过程可能拖到十几分钟甚至更久。

卡住不动有两种情况。一种是真的卡死了,比如网络测试通不过导致脚本反复重试;另一种只是看起来卡,其实在后台下载大文件没显示进度。判断方法是看终端是否还在持续输出输出,或者用ps aux | grep install看看相关进程是否还在跑。超过十分钟没任何动静,大概率有问题,果断中断重来,别傻等。换个工作目录、换网络(比如手机热点),经常能解决网络不稳定导致的下载中断。

5.4 排查速查表:把问题一次看明白

报错现象常见原因解决方法
curl: (7) Failed to connect...GitHub 连接失败使用国内镜像源安装
curl: (28) Operation timed out下载超时换网络、重试、走镜像源
/opt/homebrew is not writable目录权限问题sudo chown -R "$USER":admin /opt/homebrew
command not found: brew环境变量未配置写入 zprofile 并 source
卡在 Tapping homebrew/core仓库拉取失败配置镜像源后重试
下载软件慢镜像源未生效把镜像环境变量写入 zprofile
安装软件时要求输入密码正常权限请求输入 Mac 开机密码,这个很常见不用慌

5.5 一些经验和建议

最后说点实际的。

第一,刚装完 brew 时不要急着装一堆软件。先只装一两个,跑通流程,确认镜像源稳定、环境变量没问题,再批量安装其他软件。

第二,定期执行brew update && brew upgrade。我习惯每周跑一次,把 brew 本体、软件源索引、已安装的软件整体升级一遍。别等出了问题才想起来这回事。

第三,善用brew doctor。它是最实用的体检命令,输入后 brew 会检查自身配置和环境,列出所有异常点,比如目录权限不对、有重复的软件、环境变量冲突等。装完 brew 后先跑一次brew doctor,看起来输出全是英文,但大多意思明确,照着提示处理就行。

第四,如果你在一台新 Mac 上想快速复现原来那台机器的软件环境,用brew bundle。在旧机器上执行brew bundle dump生成一个 Brewfile 文件,拷贝到新机器后执行brew bundle install,所有软件都会自动装回来。我这两年换机、重装系统全靠这个文件,省了太多时间。

踩过的坑多了,也就有了经验。brew 这东西,本质上只是一个包管理工具,但用好了,它能让你的 Mac 变得极度顺手——软件安装统一入口、升级一条命令、卸载干净利落、环境复制几乎零成本。不管你是开发者还是普通用户,只要愿意在终端里多敲几行命令,它回报给你的效率提升是实打实的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询