Homebrew 使用详解

1,546 阅读4分钟

配图源自 Freepik

原文链接

简介

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 Terminology, Simplifying Homebrew terminology

组成

Homebrew 由以下几部分组成。

名称说明
brewHomebrew 源代码仓库
homebrew-coreHomebrew Core 仓库
homebrew-caskHomebrew Cask 仓库,提供 macOS 应用和大型二进制文件的安装
homebrew-bottlesHomebrew 预编译二进制软件包与软件包元数据文件
homebrew-cask-versionsHomebrew 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

Anonymous Analytics

完成后,使用 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 需要依赖它),上述过程会提示安装,按回车耐心等待安装完成。

macOS Requirements

==> 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/corehomebrew/cask 仓库源。

处理清单:

  1. 如果你不是 Homebrew 包开发者,可以分别执行命令 brew untap homebrew/corebrew untap homebrew/cask 来节省一些空间。

  2. 可以考虑将 HOMEBREW_NO_INSTALL_FROM_API 移除(如果设置过)。

  3. 自动运行 brew update 的频率由 5min 改为 24h。可以重新考虑是否需要设置 HOMEBREW_NO_AUTO_UPDATEHOMEBREW_AUTO_UPDATE_SECS 了(如果设置过)。

  4. 可以考虑将 HOMEBREW_API_DOMAIN 设为指定镜像源(参考下文切换镜像源)。

  5. 移除过时环境变量(如果你是 Homebrew 的开发者,可以保留 HOMEBREW_CORE_GIT_REMOTEHOMEBREW_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 installbrew upgradebrew 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 installbrew upgradebrew 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 为例:

  1. Homebrew 将 git 下载至 /usr/local/Cellar/git/<version>/ 目录,其二进制文件位于 /usr/local/Cellar/git/<version>/bin/git

  2. 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 浏览器等

Homebrew Cask

使用 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                     # 显示安装的软件数量、文件数量以及占用空间

参考链接