系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

brew

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

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. Apple Silicon 和 Intel 的 Homebrew 前缀分别是什么?
  2. 新终端找不到 brew,应该怎样修复?
  3. brew doctor 的警告是否都要处理?
答案
  1. Apple Silicon 默认 /opt/homebrew,Intel 默认 /usr/local;用 brew --prefix 确认当前实际前缀。
  2. 执行 eval "$(brew shellenv)",并把对应 brew shellenv 写进 ~/.zprofile,让登录 shell 自动加载。
  3. 不一定;unbrewed 文件常可忽略,但权限、PATH 顺序、Xcode 过旧等会影响安装的问题需要处理。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令