简介
Homebrew 是 macOS 和 Linux 上非常流行的开源包管理器,可以理解为一个命令行版本的应用商店。它是相对安全的,如果你知道自己正在下载什么。起码目前 Homebrew 上不存在恶意包(All Formulae)。
Homebrew complements macOS (or your Linux system).
术语
讲真的,Homebrew 术语有点羞涩难懂,本身有自制酿酒之意,诸如 Formula、Cask 等也是与酿酒相关的。
| 术语 | 意译 | 说明 |
|---|---|---|
| Formula | 配方 | 表示安装包的描述文件。复数为 formulae。 |
| Cask | 木桶 | 装酒的器具,表示具有 GUI 界面的原生应用。 |
| Keg | 小桶 | 表示某个包某个版本的安装目录,比如 /usr/local/Cellar/foo/0.1。 |
| Cellar | 地窖 | 存放酒的地方,表示包的安装目录,比如 /usr/local/Cellar。 |
| Caskroom | 木桶间 | 表示类型为 Cask 的包的安装目录,比如:/usr/local/Caskroom。 |
| Tap | 水龙头 | 表示包的来源,也就是镜像源。 |
| Bottle | 瓶子 | 表示预先编译好的包,下载好直接使用。 |
组成
Homebrew 由以下几部分组成。
| 名称 | 说明 |
|---|---|
| brew | Homebrew 源代码仓库 |
| homebrew-core | Homebrew Core 仓库 |
| homebrew-cask | Homebrew Cask 仓库,提供 macOS 应用和大型二进制文件的安装 |
| homebrew-bottles | Homebrew 预编译二进制软件包与软件包元数据文件 |
| homebrew-cask-versions | Homebrew Cask 其他版本 (alternative versions) 软件仓库,提供使用人数多的、需要的版本不在 Cask 仓库中的应用。 |
| homebrew-services | 与 brew services 有关的文件,用于在 macOS (launchctl) 与 Linux (systemctl) 上管理 brew 安装的服务。 |
安装 Homebrew
复制命令到终端执行,等待完成即可:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
如果没有 🪜 下载慢,可以使用中国科学技术大学镜像源的安装脚本:
/bin/bash -c "$(curl -fsSL https://mirrors.ustc.edu.cn/misc/brew-install.sh)"
配置环境变量:
# 兼容 Intel 和 M 系列的 Mac
$ echo 'export PATH="/usr/local/bin:/usr/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"' >> ~/.zshrc
# 如果不希望 Homebrew 收集匿名数据
$ echo 'export HOMEBREW_NO_ANALYTICS=1' >> ~/.zshrc
# 刷新环境变量 ✅
$ source ~/.zshrc
完成后,使用 brew -v 验证下,若有输出版本号表示已安装成功。
$ brew -v
Homebrew 4.1.22
Homebrew/homebrew-core (git revision a58688396f3; last commit 2023-12-02)
安装 Xcode Command Line Tools
如果此前没有安装过 Xcode Command Line Tools(Homebrew 需要依赖它),上述过程会提示安装,按回车耐心等待安装完成。
==> The Xcode Command Line Tools will be installed.
Press RETURN/ENTER to continue or any other key to abort:
也可以先安装 Xcode Command Line Tools,再安装 Homebrew。
$ xcode-select --install
Homebrew 4.0 升级指南
如果你是首次安装 Homebrew,不是从 3.0 升级到 4.0+,可以跳过本章节。
相比 3.0 有一个较大的变化,默认使用从 Formulae.brew.sh 下载的 JSON 文件进行包的安装,不再是本地 homebrew/core 和 homebrew/cask 仓库源。
处理清单:
-
如果你不是 Homebrew 包开发者,可以分别执行命令
brew untap homebrew/core和brew untap homebrew/cask来节省一些空间。 -
可以考虑将 HOMEBREW_NO_INSTALL_FROM_API 移除(如果设置过)。
-
自动运行
brew update的频率由5min改为24h。可以重新考虑是否需要设置HOMEBREW_NO_AUTO_UPDATE、HOMEBREW_AUTO_UPDATE_SECS了(如果设置过)。 -
可以考虑将
HOMEBREW_API_DOMAIN设为指定镜像源(参考下文切换镜像源)。 -
移除过时环境变量(如果你是 Homebrew 的开发者,可以保留
HOMEBREW_CORE_GIT_REMOTE和HOMEBREW_CASK_GIT_REMOTE)
export HOMEBREW_INSTALL_FROM_API=1
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
export HOMEBREW_CASK_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-cask.git"
相关链接:
切换镜像源
在国内,如果执行 brew install、brew upgrade、brew update 较慢,可以考虑使用国内的镜像源。
以中国科学技术大学镜像源为例,执行以下命令将镜像源地址添加到 ~/.zshrc
$ echo '
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
' >> ~/.zshrc
若要重置为官方镜像源,前往
~/.zshrc将以上三个环境变量移除即可
自 2026 年 6 月起,由于 4.0 使用全新的 JSON API 安装方式,USTC 不再提供 Homebrew Core、Homebrew Cask 镜像 详情
自动更新配置
默认情况下,在执行 brew install、brew upgrade、brew tap 之前,每隔第一段时间会自动执行 brew update 以获取最新的 Homebrew 版本。4.0 版本自动执行频率为 24h(3.0 版本为 5min)。
可通过以下环境变量,设置完全禁用、设置时间间隔。
如果需要自定义更新的时间间隔,可以如下设置,禁用自动更新,并显式声明更新时间(单位秒)
$ echo '
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_AUTO_UPDATE_SECS=86400
' >> ~/.zshrc
执行包安装/更新时,出现 Downloading https://formulae.brew.sh/api/formula.jws.json 提示,就是源于这个自动更新机制。这个 JSON 文件有 4M 多,如果在国内不慢才怪。
安装细节
专供开发者,普通用户可以忽略本章节内容。
相关命令:
# 显示 Homebrew 本地的 Git 仓库
$ brew --repo
# 显示 Homebrew 安装路径
$ brew --prefix
# 显示 Homebrew Cellar 路径
$ brew --cellar
# 显示 Homebrew Caskroom 路径
$ brew --caskroom
# 缓存路径
$ brew --cache
Homebrew 默认安装路径如下:
- Apple Silicon Mac:
/opt/homebrew - Intel Mac:
/usr/local
Discussion: longterm Homebrew prefix on Apple Silicon Macs #9177
以 brew install git 为例:
-
Homebrew 将 git 下载至
/usr/local/Cellar/git/<version>/目录,其二进制文件位于/usr/local/Cellar/git/<version>/bin/git -
Homebrew 为
/usr/local/Cellar/git/<version>/bin/git创建一个软链文件至/usr/local/bin
Apple Silicon Mac 的路径对应是:
/opt/homebrew/Cellar/git/<version>//opt/homebrew/Cellar/git/<version>/bin/git/opt/homebrew/bin
当执行 brew uninstall 时,会将 /usr/local/Cellar 下对应包目录删除,对应的链接关系也会移除。
当执行 brew cleanup 时,会将 /usr/local/Cellar 所有包里的旧版本,只保留最新版本。
安装包
在 Homebrew 里有两类包,一类是命令行工具、一类是 GUI 桌面应用。对应的 Homebrew 的术语分别是:Formula、Cask。
- Formula:通常是命令行工具,如开发库、字体、插件等不含 GUI 界面的软件/工具
- Cask:通常是含有 GUI 图形化界面的软件,比如 Chrome 浏览器等
使用 brew search 搜索包,可以看到搜索结果列出了 Formulae 和 Casks 两种分类:
$ brew search google
==> Formulae
aws-google-auth google-java-format mcp-google-sheets
google-authenticator-libpam google-sparsehash goose
google-benchmark googletest goodls
google-go ✔ googleworkspace-cli
==> Casks
font-google-sans-code google-chrome@beta google-japanese-ime
google-ads-editor google-chrome@canary google-japanese-ime@dev
google-analytics-opt-out google-chrome@dev google-trends
google-assistant (deprecated) google-drive google-web-designer
google-chat (disabled) google-earth-pro ungoogled-chromium
google-chrome google-gemini
对于 Formula 包,安装/卸载/重装的方式如下:
$ brew install <package-name> # 安装
$ brew uninstall <package-name> # 卸载
$ brew reinstall <package-name> # 重装
如果是 GUI 应用,可加上 --cask 参数,如 brew install google-chrome --cask。
如需强制卸载,加上 --force 参数。
常用命令清单
检查
用于检查 Homebrew 当前配置是否合理,或者某些包存在的问题等。
$ brew doctor
搜索
支持模糊搜索。
$ brew search <keyword> # 按关键词搜索包
更新包
$ brew upgrade # 更新所有已安装的包
$ brew upgrade <package-name> # 更新指定包
列出已安装的包
$ brew list # 所有已安装的包,包括 Formulae 和 Cask
$ brew list --formula # 所有已安装的 Formulae
$ brew list --cask # 所有已安装的 Casks
$ brew list <package-name> # 列举某个 Formula 或 Cask 的详细路径
列出可更新的包
$ brew outdated # 列举过时包
锁定某个不想更新的包
$ brew pin <package-name> # 锁定指定包
$ brew unpin <package-name> # 取消锁定指定包
清理旧包
$ brew cleanup # 清理所有旧版本的包,仅保留最新版本
$ brew cleanup <package-name> # 清理指定的旧版本包
$ brew cleanup -n # 查看可清理的旧版本包
查看已安装包的依赖
$ brew deps <package-name> # 列举某个包的依赖,带上 --tree 参数则以树状形式输出
$ brew deps --installed # 列举所有已安装的包的依赖
查看包的信息
$ brew info <package> # 显示某个包信息
$ brew info # 显示安装的软件数量、文件数量以及占用空间