reference 速查表:Homebrew(brew)完整命令备忘 — 从安装到包管理、Cask、Tap 与清理
【免费下载链接】reference面向开发者的技术速查清单(Cheat Sheets)集合,整理常见技术、工具与开发流程,帮助快速查阅关键信息,提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference
本文基于 reference 仓库(中文开发者技术速查清单集合)中的 Homebrew 备忘清单 docs/homebrew.md 系统整理,覆盖 Homebrew 在 macOS(或 Linux)上的完整命令体系:brew 本体的安装与国内镜像加速、软件包安装/卸载/链接、升级更新、Cask 图形应用管理、tap 第三方源仓库、缓存清理,直至彻底卸载 Homebrew。读完后你可以直接按小节查阅每条brew子命令的用途并复制使用,同时了解这张速查表在 reference 项目中如何被渲染与发布。
速查表的定位与查看方式
在 reference 项目中的位置
Homebrew 被 docs/homebrew.md 原文开篇定义为"macOS(或 Linux) 缺少的包管理器",这张备忘清单整理brew命令的使用与安装。在 reference 仓库首页 README.md 中,Homebrew 卡片归入"软件包管理器"分类(与 APT、Yum、Pacman、Conan、CocoaPods、Cargo、SDKMAN 并列),卡片链接指向./docs/homebrew.md,并带有macOS标签(见 README.md 软件包管理器分类)。
按照 docs/quickreference.md 的图标命名规范,速查表文档homebrew.md对应首页图标 assets/homebrew.svg(图标名称与清单名称保持一致,SVG 使用1em尺寸与currentColor继承颜色,见 图标规范说明)。
页面结构约定
reference 仓库中每张速查表遵循统一结构(见 页面结构约定):
- 一级标题(H1)作为页面大标题,例如"Homebrew 备忘清单";
- 大标题下紧跟一段介绍文本;
- H2 作为分类标题("安装"、"升级"、"Brew Cask 命令"等);
- H3 作为"卡片",卡片内容即命令表格或代码块。
docs/homebrew.md 中还使用<!--rehype:wrap-class=row-span-3-->一类的 rehype 注释控制卡片网格的跨行布局(如 安装章节的布局注释),这些注释在渲染后不影响 Markdown 可读性。
本地编译与在线查看
reference 是纯静态速查站,编译链路如下:
- package.json 中定义了
start(refs-cli --watch监听 md 文件实时生成 HTML)与build(refs-cli编译输出 HTML 到dist/)脚本,并要求 Node >= 16(见 构建脚本); - 本地调试流程:
npm i安装依赖、npm run build编译、用浏览器打开dist/index.html预览,npm run start可开启监听模式(见 本地编译预览); - 部署侧,netlify.toml 指定执行
npm run build并发布dist目录;Dockerfile 则把dist静态资源复制到精简的静态网站基础镜像中,便于自建部署。
因此本文整理的所有命令,其原始出处均可在仓库的docs/homebrew.md中逐行对应。
安装 Homebrew
官方安装命令
原文档给出的标准安装方式为下载并执行官方安装脚本(见 安装命令):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"脚本引用自install/HEAD/install.sh,HEAD始终指向安装仓库的默认分支最新脚本,适合常规安装场景。
使用国内镜像加速安装和更新
原文档提供的方法是把Homebrew/brew与Homebrew/homebrew-core两个仓库的 Git 镜像放到国内代码托管平台(gitee)同步后,通过环境变量指向镜像地址,再执行安装脚本(见 镜像加速安装):
# 把 Homebrew/brew 的 Git 镜像放在这里 export HOMEBREW_BREW_GIT_REMOTE="..." # 将 Homebrew/homebrew-core 的 Git 镜像放在这里 export HOMEBREW_CORE_GIT_REMOTE="..." /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"两个变量的作用:
| 环境变量 | 含义 |
|---|---|
HOMEBREW_BREW_GIT_REMOTE | Homebrew 主程序仓库(brew 本体)使用的 Git 镜像地址 |
HOMEBREW_CORE_GIT_REMOTE | 核心配方仓库(homebrew-core,存放绝大多数 formula)使用的 Git 镜像地址 |
使用注意:
"..."占位符需替换为实际可用的镜像仓库 URL;- 这两个环境变量应写入 shell 配置文件(如
~/.zshrc或~/.bashrc)使其长期生效,否则后续brew update、brew upgrade等涉及仓库拉取的操作仍会回落到官方仓库地址; - 该方案的收益在于:安装阶段以及之后的更新都走国内镜像,拉取源码仓库的速度显著提升。
安装期间跳过克隆(beta)
原文档还给出了通过 API 模式安装、在安装期间跳过本地克隆的方式(标注为 beta 特性,见 API 模式安装):
export HOMEBREW_INSTALL_FROM_API=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"设置HOMEBREW_INSTALL_FROM_API=1后,brew 通过 API 获取配方元数据而不在本地克隆庞大的 homebrew-core 仓库,可以加快安装过程。
安装、卸载与链接软件包
原文档"安装卸载"一节的命令表(见 安装卸载表)完整如下:
| 命令 | 说明 |
|---|---|
brew install git | 安装一个软件包 |
brew reinstall git | 重新安装一个软件包 |
brew uninstall git | 删除/卸载软件包 |
brew switch git 2.5.0 | 切换软件包的版本 |
brew unlink git | 取消软件包的链接 |
brew link git | 链接已有的软件包 |
brew cleanup git | 删除旧版本的软件包及依赖 |
补充说明:
- Homebrew 以"配方(formula)"描述软件包,
install会下载并构建配方、把可执行文件以符号链接方式挂到前缀目录(prefix)的bin下;link/unlink就是手工控制这组符号链接,例如同时安装多个版本时用来决定哪个版本的入口文件生效; reinstall用于在同一版本上强制重新构建/重放安装过程,适合修复安装损坏;- 关于
brew switch:这是较早期 Homebrew 提供的版本切换子命令。在较新版本的 Homebrew 中该子命令已不再默认提供,实际使用中若执行会提示命令不存在;版本选择通常改为在brew install时结合配方参数(如按 git tag 安装)来实现,具体以当前版本brew help的输出为准; brew cleanup git针对单个配方清理旧版本,后文"清理"一节会给出更完整的清理选项。
升级与更新
原文档"升级"一节的命令表(见 升级表):
| 命令 | 说明 |
|---|---|
brew upgrade git | 升级一个软件包 |
brew upgrade | 升级所有可升级的软件包 |
brew update | 更新Homebrew和Cask |
update与upgrade的分工可以这样理解:update刷新的是 Homebrew 自身及其配方仓库元数据(相当于刷新"软件源"),upgrade则是把已安装软件包升级到元数据中的最新可用版本。日常运维中可以先执行brew outdated(见下文全局命令)预览哪些包落后,再决定是全部升级还是逐个升级。
Brew Cask 命令:管理图形界面应用
原文档"Brew Cask 命令"一节(见 Cask 表):
| 命令 | 说明 |
|---|---|
brew install --cask firefox | 安装火狐浏览器 |
brew list --cask | 列出已安装应用 |
Cask 命令用于与图形界面应用程序交互,可以安装和管理 macOS 上的图形界面应用程序。Cask 是 Homebrew 面向.app图形应用(浏览器、IDE、编辑器等)的扩展命名空间:普通brew install <name>安装的是命令行"配方",而brew install --cask <name>安装的则是带图形界面的应用包,因此两者不会重名冲突。查看已安装的 Cask 应用时同样需要带上--cask标记,如brew list --cask。
更多包命令:查看配方详情
原文档"更多包命令"一节的命令表(见 包命令表):
| 命令 | 说明 |
|---|---|
brew info git | 显示软件包的版本、依赖、注意事项等信息 |
brew edit git | 编辑此软件包的安装脚本 |
brew cat git | 打印此软件包的安装脚本 |
brew home git | 打开此软件包的主页 |
brew search git | 搜索软件包公式并显示相关信息 |
brew list --versions git | 查看安装的软件包及其版本信息 |
几点实操提示:
brew cat git输出配方内容(即原文所称"安装脚本",通常为 Ruby 配方文件),是了解一个包依赖了哪些库、如何构建的最直接方式;brew edit git会调用编辑器打开该配方,适合临时打补丁后配合brew install --build-from-source一类参数使用(改动仅影响本机环境);brew home git打开配方页面对应的项目主页,便于追溯上游版本公告。
全局命令
原文档"全局命令"一节的命令表(见 全局命令表):
| 命令 | 说明 |
|---|---|
brew list | 列出已安装的软件包 |
brew outdated | 列出需要升级的软件包 |
brew doctor | 诊断 Homebrew 是否存在问题 |
brew pin <formula> | 防止指定软件包被升级 |
brew unpin <formula> | 允许指定软件包被升级 |
brew list不带参数时列出全部已安装配方,配合--versions可以显示版本(如brew list --versions);brew pin/brew unpin是典型的"版本锁定"手段:把依赖敏感的生产工具 pin 住后,brew upgrade会跳过该配方,待验证兼容后再unpin恢复升级;brew doctor用于检查 Homebrew 安装与已装包的健康状态(如依赖关系异常、未链接的包等常见问题),环境出问题时建议优先执行。
帮助命令
原文档"帮助命令"一节(见 帮助命令表):
| 命令 | 说明 |
|---|---|
brew help | 打印帮助信息 |
brew help <sub-command> | 打印子命令的帮助信息 |
遇到不确定的子命令参数时,brew help <sub-command>是确认当前版本实际支持选项的可靠方式(例如上文提到的brew switch是否存在,直接brew help switch或执行该命令即可验证)。
Brew 清理:旧版本与缓存管理
原文档"Brew 清理"一节给出了六个清理场景(见 清理章节):
删除旧版本的已安装软件包:
$ brew cleanup删除旧版本指定软件包:
$ brew cleanup <formula>清理并附带 scrub(原文档简述为"删除未安装的软件包"):
$ brew cleanup -s删除所有 Homebrew 缓存:
$ brew cleanup --prune=all直接删除 Homebrew 的缓存目录:
$ rm -rf $(brew --cache)显示所有将被删除的软件包(试运行):
$ brew cleanup -n各选项的作用说明:
- 不带参数的
brew cleanup清理所有已安装配方的旧版本;带配方名(brew cleanup <formula>)时只清理指定配方; -n(dry-run)只打印将被删除的内容而不实际执行,适合在清理前先确认影响范围;--prune=all表示剪除全部下载缓存;Homebrew 默认只会剪除超过默认时间窗口的缓存文件,如需自定义窗口可用--prune=N形式的参数(N 为小时数),具体以brew help cleanup为准;-s对应 Homebrew 的 scrub 行为,即清理时同时移除 cellars 中的开发文件(如头文件等);原文档将其概括为"删除未安装的软件包",理解时以brew help cleanup对--scrub的说明为准;brew --cache输出 Homebrew 缓存目录路径,因此rm -rf $(brew --cache)是直接删除缓存目录的更"暴力"方式,执行前建议先确认路径输出正确。
Tap 管理第三方源码仓库
原文档"Brew 源码仓库"一节(见 Tap 章节)整理如下(原文中"点击"为 tap 的误译,语义应为"添加"):
列出所有当前已添加的源码仓库(tap):
$ brew tap使用 https 从 GitHub 中添加软件包源码仓库:
# https://github.com/user/homebrew-repo $ brew tap <user/repo>从指定 URL 中添加软件源码仓库:
$ brew tap <user/repo> <URL>从存储库中删除给定的源码仓库:
$ brew untap <user/repo>Tap 机制的意义:Homebrew 的配方分散在多个 Git 仓库中,内置的homebrew-core覆盖了绝大多数软件;当需要安装不在 core 中的软件(如商业工具、小众组件)时,通过brew tap <user/repo>添加第三方配方仓库,之后brew install就能从该 tap 找到配方;不再需要时用brew untap移除。这与前文HOMEBREW_CORE_GIT_REMOTE的作用互补——后者只是给内置 core 仓库换镜像地址,前者则是增删配方来源本身。
搜索与查看
原文档"搜索查看"一节(见 搜索查看章节):
列出所有已安装的软件包:
$ brew list显示所有本地可用的 brew 配方:
$ brew search搜索包含指定字符的 brew 配方:
$ brew search <text>显示有关软件包的信息:
$ brew info <formula>brew search不带参数时列出本地配方仓库中可用的全部配方(数量庞大,日常更常用带关键词的形式);brew search <text>按关键词匹配配方名,并支持正则表达式模式,例如用正则同时匹配多个候选名。安装前先用brew info <formula>确认版本、依赖与注意事项,是避免"装完才发现依赖爆炸"的好习惯。
依赖关系查看
原文档"依赖"一节(见 依赖章节):
| 命令 | 说明 |
|---|---|
brew deps --tree --installed | 查看包和依赖关系图 |
brew deps git | 显示 git 依赖 |
brew deps用于显示包之间的依赖关系,可针对单个配方(brew deps git列出 git 依赖了哪些包);加上--tree以树形结构呈现依赖层次,--installed则把范围限定在已安装的包上。特定于某个包的其他选项可以附加到该命令,具体以brew help deps为准。排查"升级 A 为什么连带重装一堆库"这类问题时,该命令非常实用。
卸载 Homebrew
原文档"卸载 Homebrew"一节(见 卸载章节)给出两步:
- 使用官方卸载脚本卸载 Homebrew;
- 验证文件是否已删除。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" $ sudo rm -rf /opt/homebrew补充说明:
- 官方
uninstall.sh会移除 brew 本体及其管理的安装内容;第二条命令是对安装目录的兜底清理; /opt/homebrew是 Apple Silicon Mac 上的默认前缀(prefix),Intel Mac 上默认前缀为/usr/local,兜底删除前建议先用brew --prefix确认本机实际前缀路径;- 卸载完成后按原文提示人工验证相关目录是否已删除(
ls检查前缀目录、which brew应无结果)。
高频命令速览
将全篇最高频的命令收敛为一张速查表,便于快速检索:
| 场景 | 命令 |
|---|---|
| 安装 / 重装 / 卸载包 | brew install <f>/brew reinstall <f>/brew uninstall <f> |
| 安装图形应用 | brew install --cask <name> |
| 升级 / 更新 | brew upgrade [f]/brew update |
| 查看已安装与版本 | brew list/brew list --versions |
| 查看可升级项 | brew outdated |
| 锁定 / 解锁版本 | brew pin <f>/brew unpin <f> |
| 查看配方详情 | brew info <f>/brew cat <f>/brew edit <f> |
| 搜索配方 | brew search [text] |
| 查看依赖 | brew deps [f]/brew deps --tree --installed |
| 清理旧版本 / 缓存 | brew cleanup/brew cleanup -n/brew cleanup --prune=all |
| 添加 / 移除第三方源 | brew tap <user/repo>/brew untap <user/repo> |
| 诊断 | brew doctor |
| 帮助 | brew help [sub-command] |
相关资源与延伸阅读
- Homebrew 的官方站点为 brew.sh,brew 主程序仓库与 homebrew-core 配方仓库分别是
Homebrew/brew与Homebrew/homebrew-core(原文"另见"一节列出的外部资料,本文按要求不输出外部链接); - 本仓库"软件包管理器"分类下的兄弟速查表可横向对照:APT、Yum、Pacman、Conan、CocoaPods、Cargo、SDKMAN;
- 速查表样式与构建规范见 docs/quickreference.md,贡献流程见 CONTRIBUTING.md。
【免费下载链接】reference面向开发者的技术速查清单(Cheat Sheets)集合,整理常见技术、工具与开发流程,帮助快速查阅关键信息,提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考