Homebrew 包管理器
2026-07-21 by dongnan
前置说明
MacOS 有一个贴合系统的包管理器 —— Homebrew。
本文以实际遇到的问题为线索,逐步展开 Homebrew 的镜像加速、常用命令,以及与 apt 的对照。
Homebrew 安装
Homebrew 的安装步骤和开发环境搭建,请参考 《MacOS 开发常用软件安装与配置》 的第 1 节。本文不再赘述,聚焦 Homebrew 的使用层面。
问题描述
在安装 brew install openjdk@17 卡住不动,10 分钟了没反应, 卡在这里:
⠞ JSON API packages.arm64_tahoe.jws.json Downloading 15.2MB/------
解决方案
Homebrew 有类似 apt 的镜像设置吗?
有的。国内访问 Homebrew 默认源很慢,需要替换为镜像源。主要有两个层面:
替换核心仓库
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
替换预编译包地址
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
写入 Shell 配置持久化
cat >> ~/.zshrc << 'EOF'
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
EOF
设置后执行
source ~/.zshrc或重新打开终端即可生效。如果之前brew install已卡住,先Ctrl+C终止,配置镜像后再重试。
安装 OpenJDK 17(可选)
配置好镜像后,回到最初的目标 —— 安装 Java 17。以下是完整步骤:
前置依赖
编译 Java 相关包需要 Xcode Command Line Tools,如果尚未安装:
xcode-select --install
安装
brew install openjdk@17
创建符号链接
让 macOS 系统识别 Java 环境:
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
配置环境变量
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
验证
java -version
预期输出类似:
openjdk version "17.0.x" 2024-xx-xx
OpenJDK Runtime Environment Homebrew (build 17.0.x+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.x+0, mixed mode, sharing)
注意:
openjdk@17是 keg-only 的 formula,Homebrew 不会自动将其链接到/opt/homebrew/bin,因此必须手动配置 PATH 和符号链接。
brew 常用命令
包管理
| 命令 | 用途 |
|---|---|
brew install <pkg> |
安装包 |
brew uninstall <pkg> |
卸载包 |
brew reinstall <pkg> |
重装包 |
brew list |
列出已安装的所有包 |
brew info <pkg> |
查看包详情(版本、依赖、安装路径) |
brew search <keyword> |
搜索包 |
更新与清理
| 命令 | 用途 |
|---|---|
brew update |
更新 Homebrew 自身索引 |
brew upgrade |
升级所有已安装的包 |
brew upgrade <pkg> |
升级指定包 |
brew outdated |
查看哪些包可以升级 |
brew cleanup |
清理旧版本和缓存 |
brew autoremove |
删除无用的依赖 |
服务管理
Homebrew 可以直接管理后台服务(如 MySQL、Redis),无需手动编写 launchd 配置:
| 命令 | 用途 |
|---|---|
brew services list |
查看所有服务及运行状态 |
brew services start <pkg> |
启动服务 |
brew services stop <pkg> |
停止服务 |
brew services restart <pkg> |
重启服务 |
仓库管理(tap)
| 命令 | 用途 |
|---|---|
brew tap <user/repo> |
添加第三方仓库 |
brew untap <user/repo> |
移除第三方仓库 |
brew tap |
列出已添加的仓库 |
状态诊断
| 命令 | 用途 |
|---|---|
brew doctor |
诊断系统潜在问题 |
brew config |
查看当前 Homebrew 配置 |
brew --version |
查看 Homebrew 版本 |
apt 和 brew 命令区别
从 Linux 迁过来,肌肉记忆全是 apt,以下是常用命令的对照:
┌──────────────────────┬─────────────────┐
│ apt │ brew │
├──────────────────────┼─────────────────┤
│ apt install │ brew install │
├──────────────────────┼─────────────────┤
│ apt remove │ brew uninstall │
├──────────────────────┼─────────────────┤
│ apt update │ brew update │
├──────────────────────┼─────────────────┤
│ apt upgrade │ brew upgrade │
├──────────────────────┼─────────────────┤
│ apt search │ brew search │
├──────────────────────┼─────────────────┤
│ apt autoremove │ brew autoremove │
├──────────────────────┼─────────────────┤
│ apt list --installed │ brew list │
└──────────────────────┴─────────────────┘
最大的区别:brew 不需要 sudo。所有包安装在 /opt/homebrew/(Apple Silicon)下,与系统路径隔离,不会污染 macOS 系统文件。
其它
- cask 与 formula 的区别:
brew install <name>装命令行工具(formula),brew install --cask <name>装 GUI 应用(cask)。例如 VS Code 是 GUI 应用,需要加--cask。 - 安装路径:Apple Silicon 为
/opt/homebrew/,Intel Mac 为/usr/local/。
参考
- DeepSeek
- Homebrew 官网
- 清华 Homebrew 镜像