macOS 的包管理器,用来安装命令行工具、开发库和图形应用。
Homebrew 的安装前缀由 CPU 架构决定:Apple Silicon 默认 /opt/homebrew,Intel 默认 /usr/local。brew --prefix 打印当前前缀,brew --prefix 公式名 打印某个包的安装目录。新开的非登录 shell、IDE 或 cron 往往没有把 Homebrew 的 bin 加进 PATH,需要执行 eval "$(/opt/homebrew/bin/brew shellenv)"(Intel 用 /usr/local/bin/brew shellenv),并把对应前缀写进 ~/.zprofile。
不要在 Apple Silicon 上再装一套 Rosetta 版 Homebrew 到 /usr/local 混用,两套前缀会让 which -a brew、编译头和动态库互相污染。安装 x86_64 程序可以让 Homebrew 处理 Rosetta,或单独用 arch -x86_64 运行程序,但不要用 sudo brew。Homebrew 明确要求前缀归当前用户所有,权限错误应修所有权,而不是提权运行。
brew doctor 检查 PATH 顺序、前缀权限、Xcode/CLT 版本、残留链接和未归 Homebrew 管理的文件。它输出的是诊断建议,不是每条都必须处理:unbrewed dylibs/headers 常来自其他安装器,确认来源后可忽略;“Xcode outdated” 和 “/usr/local is not writable” 则会影响安装,需要处理。安装 cask 的应用仍受 Gatekeeper 隔离,--no-quarantine 会去掉隔离属性,降低安全性,不建议默认使用。
# 确认架构、前缀和 brew 实际路径
% uname -m
% brew --prefix
% which -a brew
# 新 shell 或 IDE 里没有 brew 时加载环境(Intel 换成 /usr/local/bin/brew)
% eval "$(/opt/homebrew/bin/brew shellenv)"
# 安装命令行工具和图形应用
% brew install wget jq
% brew install --cask firefox
# 查看已安装版本、更新并升级
% brew list --versions
% brew update && brew outdated && brew upgrade
# 诊断环境问题,先看 Warning 再决定是否处理
% brew doctor
# 查看依赖树和包信息
% brew deps --tree wget
% brew info wget
# 用 launchd 管理 Homebrew 服务
% brew services list
% brew services start postgresql@16
# 导出和恢复 Brewfile
% brew bundle dump --file=~/Brewfile --force
% brew bundle check --file=~/Brewfile
command not found: brew:非登录 shell 没读 ~/.zprofile,执行 eval "$(brew shellenv)",或把 /opt/homebrew/bin(Intel 为 /usr/local/bin)加入 PATH。brew --prefix 返回 /usr/local:当前终端可能运行在 Rosetta 下,或 PATH 里优先的是 Intel 版 brew;用 arch 和 which -a brew 确认。/usr/local is not writable 或链接失败:不要 sudo brew,先修前缀所有权;提权安装会留下 root 属主文件,后续更难修。brew doctor 的 unbrewed dylibs/headers 多半是其他软件写入的,不影响 brew 时可忽略;但 “Xcode outdated” 会导致源码编译失败,应更新 CLT/Xcode。xcode-select -p 确认路径,完整 Xcode 还需检查 xcodebuild -license accept 是否执行过。brew upgrade 会升级所有包及其依赖,可能引入不兼容;生产环境先 brew outdated,必要时 brew pin 包名 固定版本。--no-quarantine 或全局关闭 Gatekeeper。brew cleanup 会删除旧版本和缓存,回滚会变困难;需要保留旧版本时先 brew list --versions 并做好备份。xcode-select — Homebrew 源码构建依赖的 CLT 路径xcodebuild — 构建 Xcode 工程,和 brew 安装的依赖配合defaults — 查看和修改应用偏好curl — 排查 brew 下载失败时的网络问题合上页面,先回答,再展开对照。
brew doctor 的警告是否都要处理?/opt/homebrew,Intel 默认 /usr/local;用 brew --prefix 确认当前实际前缀。eval "$(brew shellenv)",并把对应 brew shellenv 写进 ~/.zprofile,让登录 shell 自动加载。unbrewed 文件常可忽略,但权限、PATH 顺序、Xcode 过旧等会影响安装的问题需要处理。
小程序版
微信扫码,随时查命令