跳转至

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 系统文件。


其它

  1. cask 与 formula 的区别brew install <name> 装命令行工具(formula),brew install --cask <name> 装 GUI 应用(cask)。例如 VS Code 是 GUI 应用,需要加 --cask
  2. 安装路径:Apple Silicon 为 /opt/homebrew/,Intel Mac 为 /usr/local/

参考

回到页面顶部