brew(1) – macOS(或 Linux)的缺失包管理器

语法

brew --version
brew command [--verbose|-v] [options] [formula] …

说明

Homebrew 是安装 Apple 未随 macOS 提供的 UNIX 工具的最简单、最灵活的方式。它还可以安装未针对你的 Linux 发行版打包的软件,而无需 sudo

术语

公式

从上游源代码构建的 Homebrew 包定义

cask

安装 macOS 原生应用程序的 Homebrew 包定义

前缀

Homebrew 安装到的路径,例如 /usr/local

keg

给定公式版本的安装目标目录,例如 /usr/local/Cellar/foo/0.1

rack

包含一个或多个版本化keg的目录,例如 /usr/local/Cellar/foo

仅 keg

如果公式未符号链接到 Homebrew 的前缀,则该公式仅 keg

opt 前缀

指向keg活动版本的符号链接,例如 /usr/local/opt/foo

Cellar

包含一个或多个命名rack的目录,例如 /usr/local/Cellar

Caskroom

包含一个或多个命名cask的目录,例如 /usr/local/Caskroom

外部命令

在 Homebrew/brew GitHub 存储库外部定义的brew子命令

tap

公式cask和/或外部命令的目录(通常是 Git 存储库)

bottle

预构建的keg,已导入Cellarrack,而不是从上游源代码构建

基本命令

有关完整命令列表,请参阅命令部分。

使用 --verbose--debug 时,许多命令都会打印额外的调试信息。请注意,这些选项只能在命令后出现。

某些命令行为可以通过环境变量进行定制;请参阅 环境 部分。

install 公式

安装 公式

公式 通常是要安装的公式的名称,但它还有其他语法,这些语法列在 指定公式 部分中。

uninstall 公式

卸载 公式

list

列出所有已安装的公式。

search [文本|/文本/]

对 cask 令牌和公式名称执行子字符串搜索以查找 文本。如果 文本 被斜杠包围,则将其解释为正则表达式。文本 的搜索在线扩展到 homebrew/corehomebrew/cask。如果没有提供搜索词,则会列出所有可用的本地公式。

命令

analytics [子命令]

控制 Homebrew 的匿名汇总用户行为分析。请访问 https://docs.brew.sh.cn/Analytics 了解更多信息。

brew analytics [状态]

显示 Homebrew 分析的当前状态。

brew analytics (on|off)

分别打开或关闭 Homebrew 的分析。

autoremove [--dry-run]

卸载仅作为其他软件包的依赖项而安装的软件包,并且现在不再需要。

-n, --dry-run

列出将要卸载的内容,但实际上不会卸载任何内容。

casks

列出所有可本地安装的 casks,包括简称。

cleanup [options] [formula|cask …]

删除所有软件包和 casks 的过时锁定文件和过时下载,并删除已安装软件包的旧版本。如果指定了参数,则仅对给定的软件包和 casks 执行此操作。删除所有超过 120 天的下载。可以使用 HOMEBREW_CLEANUP_MAX_AGE_DAYS 进行调整。

--prune

删除所有早于指定天数的缓存文件。如果你想删除所有内容,请使用 --prune=all

-n, --dry-run

显示将要删除的内容,但实际上不会删除任何内容。

-s

清除缓存,包括最新版本的下载。请注意,任何已安装软件包或 casks 的下载仍不会被删除。如果你也想删除它们:rm -rf "$(brew --cache)"

--prune-prefix

仅从前缀中删除符号链接和目录,不删除其他文件。

command command […]

当调用 brew cmd 时,显示正在使用的文件路径。

commands [--quiet] [--include-aliases]

显示内置和外部命令的列表。

-q, --quiet

仅列出命令的名称,不带类别标题。

--include-aliases

包括内部命令的别名。

completions [subcommand]

控制 Homebrew 是否自动链接外部 tap shell 补全文件。请参阅 https://docs.brew.sh.cn/Shell-Completion 了解更多信息。

brew completions [state]

显示 Homebrew 补全的当前状态。

brew completions (link|unlink)

链接或取消链接 Homebrew 的自动补全。

config, --config

显示 Homebrew 和系统配置信息,这对于调试很有用。如果您提交错误报告,您将需要提供此信息。

deps [options] [formula|cask …]

显示 formula 的依赖项。当给出多个公式参数时,显示每个公式的依赖项的交集。默认情况下,deps 显示所有必需和推荐的依赖项。

如果每个公式参数的任何版本已安装并且没有传递其他选项,此命令将显示其实际运行时依赖项(类似于 brew linkage),如果已安装的版本已过时,则可能与当前版本的声明依赖项不同。

注意: --missing--skip-recommended 优先于 --include-*

-n, --topological

按拓扑顺序对依赖项进行排序。

-1, --direct

仅显示公式中声明的直接依赖项。

--union

显示多个 formula 的依赖项的并集,而不是交集。

--full-name

按其全名列出依赖项。

--include-build

formula 包含 :build 依赖项。

--include-optional

formula 包含 :optional 依赖项。

--include-test

formula 包含 :test 依赖项(非递归)。

--skip-recommended

formula 跳过 :recommended 依赖项。

--include-requirements

formula 包含依赖项之外的要求。

--tree

以树的形式显示依赖项。当给出多个公式参数时,为每个公式显示单独的树。

--graph

以有向图的形式显示依赖项。

--dot

以 DOT 格式显示基于文本的图形描述。

--annotate

在输出中将任何构建、测试、隐式、可选或推荐的依赖项标记为这些依赖项。

--installed

列出当前已安装的公式的依赖项。如果指定了公式,则仅列出其当前已安装的依赖项。

--missing

仅显示缺失的依赖项。

--eval-all

评估所有可用的公式和木桶,无论是否已安装,以列出其依赖项。

--for-each

切换到 --eval-all 选项使用的模式,但仅列出每个提供的公式的依赖项,每行一个公式。这用于调试 --installed/--eval-all 显示模式。

--HEAD

显示 HEAD 版本的依赖项,而不是稳定版本的依赖项。

--os

显示给定操作系统的依赖项。

--arch

显示给定 CPU 架构的依赖项。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

desc [选项] 公式|木桶|文本|/正则表达式/ […]

显示公式的名称和一行描述。缓存是在第一次搜索时创建的,这使得该搜索比后续搜索慢。

-s, --search

在名称和描述中同时搜索文本。如果文本两侧有斜杠,则将其解释为正则表达式。

-n, --name

仅在名称中搜索文本。如果文本两侧有斜杠,则将其解释为正则表达式。

-d, --description

仅在描述中搜索文本。如果文本两侧有斜杠,则将其解释为正则表达式。

--eval-all

评估所有可用的公式和木桶,无论是否已安装,以搜索其描述。如果设置了 HOMEBREW_EVAL_ALL,则隐含此选项。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

developer [子命令]

控制 Homebrew 的开发者模式。当开发者模式启用时,brew update 将把 Homebrew 更新到 master 分支上的最新提交,而不是最新的稳定版本,同时还会进行一些其他行为更改。

brew developer [state]

显示 Homebrew 开发者模式的当前状态。

brew developer (on|off)

分别打开或关闭 Homebrew 的开发者模式。

docs

在浏览器中打开 Homebrew 的在线文档,网址为 https://docs.brew.sh.cn

doctor, dr [--list-checks] [--audit-debug] [diagnostic_check …]

检查系统是否存在潜在问题。如果发现任何潜在问题,将退出并显示非零状态。

请注意,这些警告仅用于在提交问题时帮助 Homebrew 维护人员进行调试。如果你使用 Homebrew 的所有功能都运行良好:请不要担心或提交问题;只需忽略此警告即可。

--list-checks

列出所有审核方法,如果作为参数提供,可以单独运行这些方法。

-D, --audit-debug

启用审核方法的调试和分析。

fetch [options] formula|cask […]

下载 formula 的瓶子(如果可用)或源代码包,以及 cask 的二进制文件。对于文件,还会打印 SHA-256 校验和。

--os

针对给定的操作系统下载。(传递 all 以针对所有操作系统下载。)

--arch

针对给定的 CPU 架构下载。(传递 all 以针对所有架构下载。)

--bottle-tag

下载给定标签的瓶子。

--HEAD

获取 HEAD 版本,而不是稳定版本。

-f, --force

删除先前缓存的版本并重新获取。

-v, --verbose

如果 URL 表示 VCS,则执行详细的 VCS 签出。这对于查看现有 VCS 缓存是否已更新很有用。

--retry

如果下载失败,则重试;如果先前缓存版本的校验和不再匹配,则重新下载。最多尝试 5 次,并采用指数级退避。

--deps

还下载任何列出的公式的依赖项。

-s, --build-from-source

下载源代码包,而不是瓶子。

--build-bottle

下载源代码包(用于最终装瓶),而不是瓶子。

--force-bottle

如果存在适用于当前或最新版本的 macOS 的瓶子,则下载该瓶子,即使在安装过程中不会使用该瓶子。

--[no-]quarantine

禁用/启用下载的隔离(默认:启用)。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

公式

列出所有可本地安装的公式,包括简称。

gist-logs [选项] 公式

公式的失败构建日志上传到新的 Gist。如果没有找到日志,则显示错误消息。

--with-hostname

在 Gist 中包含主机名。

-n, --new-issue

在创建 Gist 后,自动在相应的 GitHub 存储库中创建一个新问题。

-p, --private

Gist 将被标记为私有,不会出现在列表中,但可以通过其链接访问。

help [命令 …]

输出 brew 命令 的使用说明。相当于 brew --help 命令

home, homepage [--formula] [--cask] [公式|cask …]

在浏览器中打开公式cask的主页,如果没有提供参数,则打开 Homebrew 自己的主页。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

info, abv [选项] [公式|cask …]

显示 Homebrew 安装的简要统计信息。如果提供了公式cask,则显示有关它的信息摘要。

--analytics

列出全局 Homebrew 分析数据,或者如果指定,则列出公式的安装和构建错误数据(前提是未设置 HOMEBREW_NO_ANALYTICSHOMEBREW_NO_GITHUB_API)。

--天数

要检索的分析数据的天数。天数 的值必须为 3090365。默认值为 30

--类别

要检索的分析数据类型。类别 的值必须为 安装按需安装构建错误;如果未指定 公式,则可以指定 cask 安装操作系统版本。默认值为 安装

--github

在浏览器中打开 公式cask 的 GitHub 源页面。要在本地查看历史记录:brew log -p 公式cask

--json

打印 JSON 表示形式。目前,版本 的默认值为 公式v1。对于 公式cask,请使用 v2。请参阅文档以了解使用 JSON 输出的示例:https://docs.brew.sh.cn/Querying-Brew

--installed

打印当前已安装公式的 JSON。

--eval-all

评估所有可用的公式和 cask(无论是否已安装)以打印其 JSON。如果设置了 HOMEBREW_EVAL_ALL,则隐含此选项。

--变体

在每个公式的 JSON 输出中包含变体哈希。

-v, --verbose

显示 公式 的更详细的分析数据。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

安装 [选项] 公式|cask […]

安装 公式cask。特定于 公式 的其他选项可以附加到命令中。

除非设置了 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK,否则 brew upgradebrew reinstall 将分别针对过时的依赖项和链接损坏的依赖项运行。

除非设置了 HOMEBREW_NO_INSTALL_CLEANUP,否则 brew cleanup 将针对已安装的公式运行,或者每 30 天针对所有公式运行。

除非设置了 HOMEBREW_NO_INSTALL_UPGRADE,否则 brew install formula 将升级 formula(如果已安装但已过时)。

-d--debug

如果酿造失败,请使用 IRB 或临时构建目录内的 shell 打开一个交互式调试会话。

--display-times

在运行结束时打印每个软件包的安装时间。

-f, --force

安装公式时不检查以前安装的仅限 keg 或未迁移的版本。安装木桶时,覆盖现有文件(二进制文件和符号链接除外,除非最初来自同一木桶)。

-v, --verbose

打印验证和安装后步骤。

-n, --dry-run

显示将要安装的内容,但实际上不安装任何内容。

--formula

将所有命名参数视为公式。

--ignore-dependencies

一个不受支持的 Homebrew 开发选项,用于跳过安装任何类型的依赖项。如果依赖项尚未存在,则公式将出现问题。如果您没有开发 Homebrew,请考虑调整您的 PATH 而不是使用此选项。

--only-dependencies

安装依赖项并指定选项,但不要安装公式本身。

--cc

尝试使用指定的 compiler 进行编译,它应该是编译器可执行文件的名称,例如 gcc-7 用于 GCC 7。为了使用 LLVM 的 clang,请指定 llvm_clang。要使用 Apple 提供的 clang,请指定 clang。此选项仅接受 Homebrew 提供或与 macOS 捆绑在一起的编译器。如果您在使用此选项时遇到错误,请不要提交问题。

-s, --build-from-source

即使提供了 bottle,也从源代码编译formula。如果可用,依赖项仍将从 bottle 安装。

--force-bottle

即使通常不会用于安装,如果当前或最新版本的 macOS 存在 bottle,则从 bottle 安装。

--include-test

安装运行 brew test formula 所需的测试依赖项。

--HEAD

如果 formula 定义了它,则安装 HEAD 版本,又称 main、trunk、unstable、master。

--fetch-HEAD

获取上游存储库以检测公式的 HEAD 安装是否已过时。否则,只有在发布新的稳定版本或开发版本时,才会检查存储库的 HEAD 是否有更新。

--keep-tmp

保留安装期间创建的临时文件。

--debug-symbols

在构建时生成调试符号。源代码将保留在缓存目录中。

--build-bottle

在安装期间为最终装瓶做好公式准备,跳过任何安装后步骤。

--skip-post-install

安装但跳过任何安装后步骤。

--bottle-arch

针对指定架构优化 bottle,而不是针对 bottle 所基于的 macOS 版本支持的最旧架构进行优化。

-i, --interactive

下载并修补 formula,然后打开一个 shell。这允许用户运行 ./configure --help 并确定如何将软件包转换为 Homebrew 包。

-g, --git

创建 Git 存储库,可用于创建软件补丁。

--overwrite

链接时删除前缀中已存在的文件。

--cask

将所有命名参数视为木桶。

--[no-]binaries

禁用/启用帮助程序可执行文件的链接(默认:启用)。

--require-sha

要求所有 cask 都具有校验和。

--[no-]quarantine

禁用/启用下载的隔离(默认:启用)。

--adopt

采用与正在安装的工件相同,存在于目标中的现有工件。不能与 --force 结合使用。

--skip-cask-deps

跳过安装 Cask 依赖项。

--zap

brew reinstall --cask 结合使用。删除与 Cask 关联的所有文件。可能会删除应用程序之间共享的文件。

leaves [--installed-on-request] [--installed-as-dependency]

列出已安装的公式,这些公式不是其他已安装公式或 Cask 的依赖项。

-r, --installed-on-request

仅列出已手动安装的叶子。

-p, --installed-as-dependency

仅列出已作为依赖项安装的叶子。

将所有 formula 的已安装文件符号链接到 Homebrew 的前缀中。在安装公式时会自动执行此操作,但对于手动安装来说可能很有用。

--overwrite

链接时删除前缀中已存在的文件。

-n, --dry-run

列出 brew link --overwrite 将链接或删除的文件,而不会实际链接或删除任何文件。

-f, --force

允许链接仅限 keg 的公式。

--HEAD

如果已安装,则链接公式的 HEAD 版本。

list, ls [options] [installed_formula|installed_cask …]

列出所有已安装的公式和 Cask。如果提供了 formula,则总结其当前 keg 中的路径。如果提供了 cask,则列出其制品。

--formula

仅列出公式,或将所有命名参数视为公式。

--cask

仅列出 Cask,或将所有命名参数视为 Cask。

--full-name

打印具有完全限定名称的公式。除非传递了 --full-name--versions--pinned,否则其他选项(即 -1-l-r-t)将传递给 ls(1),后者生成实际输出。

--versions

显示已安装公式的版本号,或仅显示指定的公式,如果提供了formula

--multiple

仅显示已安装多个版本的公式。

--pinned

仅列出已固定的公式,或仅列出指定的(已固定的)公式,如果提供了formula。另请参见 pinunpin

--installed-on-request

列出按需安装的公式。

--installed-as-dependency

列出作为依赖项安装的公式。

-1

强制输出为每行一个条目。当输出不是到终端时,这是默认设置。

-l

以长格式列出公式和/或 cask。当公式或 cask 名称作为参数传递时,此选项无效。

-r

反转公式和/或 cask 排序的顺序,以首先列出最旧的条目。当公式或 cask 名称作为参数传递时,此选项无效。

-t

按修改时间对公式和/或 cask 进行排序,首先列出最近修改的公式。当公式或 cask 名称作为参数传递时,此选项无效。

log [options] [formula|cask]

显示 formulacaskgit log,如果没有提供公式或 cask,则显示 Homebrew 存储库的日志。

-p--patch

还打印提交的补丁。

--stat

还打印提交的 diffstat。

--oneline

每提交仅打印一行。

-1

仅打印一个提交。

-n--max-count

仅打印指定数量的提交。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

migrate [options] installed_formula|installed_cask […]

将已重命名的包迁移到新名称,其中 formula 是包的旧名称。

-f, --force

将已安装的 公式 和提供的 公式 视为来自同一水龙头,并无论如何迁移它们。

-n, --dry-run

显示将要迁移的内容,但实际上不迁移任何内容。

--formula

仅迁移公式。

--cask

仅迁移木桶。

missing [--hide=] [公式 …]

检查给定的 公式 木桶是否有缺失的依赖项。如果没有提供 公式,则检查所有木桶。如果发现任何木桶缺少依赖项,将退出并显示非零状态。

--hide

假装没有安装任何指定的 隐藏隐藏 应为用逗号分隔的公式列表。

nodenv-sync

~/.nodenv/versions 中为 Homebrew 安装的 NodeJS 版本创建符号链接。

请注意,还将创建旧版本符号链接,例如 NodeJS 19.1.0 也将链接到 19.0.0。

options [options] [公式 …]

显示特定于 公式 的安装选项。

--compact

在用空格分隔的单行上显示所有选项。

--installed

显示当前已安装公式的选项。

--eval-all

评估所有可用的公式和木桶,无论是否已安装,以显示其选项。

--command

显示指定 命令 的选项。

outdated [options] [公式|木桶 …]

列出具有可用更新版本的已安装木桶和公式。默认情况下,版本信息显示在交互式外壳中,否则会隐藏。

-q, --quiet

仅列出过时木桶的名称(优先于 --verbose)。

-v, --verbose

包括详细的版本信息。

--formula

仅列出过时的公式。

--cask

仅列出过时的木桶。

--json

以 JSON 格式打印输出。有两个版本:v1v2v1 已弃用,如果未指定版本,目前是默认版本。 v2 打印过时的公式和木桶。

--fetch-HEAD

获取上游存储库以检测公式的 HEAD 安装是否已过时。否则,只有在发布新的稳定版本或开发版本时,才会检查存储库的 HEAD 是否有更新。

-g--greedy

还包括 auto_updates trueversion :latest 的过时木桶。

--greedy-latest

还包括过时的木桶,包括具有 version :latest 的木桶。

--greedy-auto-updates

还包括过时的木桶,包括具有 auto_updates true 的木桶。

pin installed_formula […]

固定指定的 formula,防止在发出 brew upgrade formula 命令时对其进行升级。另请参阅 unpin

注意: 依赖于固定公式的较新版本的其他软件包可能无法正确安装或运行。

postinstallpost_install installed_formula […]

重新运行 formula 的安装后步骤。

pyenv-sync

~/.pyenv/versions 中为 Homebrew 安装的 Python 版本创建符号链接。

请注意,将创建较旧的补丁版本符号链接并将其链接到次要版本,例如 Python 3.11.0 也将符号链接到 3.11.3。

rbenv-sync

~/.rbenv/versions 中为 Homebrew 安装的 Ruby 版本创建符号链接。

请注意,还将创建较旧的版本符号链接,例如 Ruby 3.2.1 也将符号链接到 3.2.0。

readall [options] [tap …]

从指定的 tap 导入所有项目,或者如果没有提供,则从所有已安装的 tap 导入。当对 formula.rb 进行重大更改、测试加载所有项目的性能或检查当前的公式/木桶是否有 Ruby 问题时,这对于调试所有项目的问题非常有用。

--os

使用给定的操作系统进行读取。(传递 all 来模拟所有操作系统。)

--arch

使用给定的 CPU 架构进行读取。(传递 all 来模拟所有架构。)

--aliases

验证每个 tap 中的任何别名符号链接。

--语法

语法检查所有 Homebrew 的 Ruby 文件(如果未传递 tap)。

--eval-all

评估所有可用的配方和酒桶,无论是否已安装。如果设置了 HOMEBREW_EVAL_ALL,则暗示该评估。

--no-simulate

检查配方和酒桶时,不要模拟其他系统配置。

reinstall [options] formula|cask […]

卸载然后重新安装 formulacask,使用最初安装时使用的相同选项,加上特定于 formula 的任何附加选项。

除非设置了 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK,否则 brew upgradebrew reinstall 将分别针对过时的依赖项和链接损坏的依赖项运行。

除非设置了 HOMEBREW_NO_INSTALL_CLEANUP,否则将针对重新安装的配方运行 brew cleanup,或者针对所有配方每 30 天运行一次。

-d--debug

如果酿造失败,请使用 IRB 或临时构建目录内的 shell 打开一个交互式调试会话。

--display-times

在运行结束时打印每个软件包的安装时间。

-f, --force

安装时不检查以前安装的仅限 keg 或未迁移的版本。

-v, --verbose

打印验证和安装后步骤。

--formula

将所有命名参数视为公式。

-s, --build-from-source

即使有可用的瓶装,也从源代码编译 formula

-i, --interactive

下载并修补 formula,然后打开一个 shell。这允许用户运行 ./configure --help 并确定如何将软件包转换为 Homebrew 包。

--force-bottle

即使通常不会用于安装,如果当前或最新版本的 macOS 存在 bottle,则从 bottle 安装。

--keep-tmp

保留安装期间创建的临时文件。

--debug-symbols

在构建时生成调试符号。源代码将保留在缓存目录中。

-g, --git

创建 Git 存储库,可用于创建软件补丁。

--cask

将所有命名参数视为木桶。

--[no-]binaries

禁用/启用帮助程序可执行文件的链接(默认:启用)。

--require-sha

要求所有 cask 都具有校验和。

--[no-]quarantine

禁用/启用下载的隔离(默认:启用)。

--adopt

采用与正在安装的工件相同,存在于目标中的现有工件。不能与 --force 结合使用。

--skip-cask-deps

跳过安装 Cask 依赖项。

--zap

brew reinstall --cask 结合使用。删除与 Cask 关联的所有文件。可能会删除应用程序之间共享的文件。

search, -S [options] text|/regex/ […]

对酒桶标记和配方名称执行 text 的子字符串搜索。如果 text 被斜杠包围,则将其解释为正则表达式。

--formula

搜索配方。

--cask

搜索酒桶。

--desc

搜索描述与 text 匹配的配方,以及名称或描述与 text 匹配的酒桶。

--eval-all

评估所有可用的公式和木桶,无论是否已安装,以搜索其描述。如果设置了 HOMEBREW_EVAL_ALL,则隐含此选项。

--pull-request

搜索包含 text 的 GitHub pull request。

--open

仅搜索开放的 GitHub pull request。

--closed

仅搜索已关闭的 GitHub pull request。

--repology

在给定的数据库中搜索text

--macports

在给定的数据库中搜索text

--fink

在给定的数据库中搜索text

--opensuse

在给定的数据库中搜索text

--fedora

在给定的数据库中搜索text

--archlinux

在给定的数据库中搜索text

--debian

在给定的数据库中搜索text

--ubuntu

在给定的数据库中搜索text

setup-ruby [命令]

安装并配置 Homebrew 的 Ruby。如果传递了 command,它将仅在该命令需要时运行 Bundler。

shellenv [bash|csh|fish|pwsh|sh|tcsh|zsh]

打印导出语句。在 shell 中运行时,此 Homebrew 安装将添加到您的 PATHMANPATHINFOPATH 中。

变量 HOMEBREW_PREFIXHOMEBREW_CELLARHOMEBREW_REPOSITORY 也被导出,以避免多次查询它们。为了帮助保证幂等性,当 Homebrew 的 binsbin 目录分别在您的 PATH 中排在第一和第二位时,此命令不会产生任何输出。考虑将此命令的输出评估添加到您的 dotfiles(例如,macOS 上的 ~/.bash_profile~/.zprofile,以及 Linux 上的 ~/.bashrc~/.zshrc):eval "$(brew shellenv)"

可以使用受支持的 shell 名称参数显式指定 shell。未知 shell 将输出 POSIX 导出。

tap [options] [user/repo] [URL]

轻触公式存储库。如果没有提供任何参数,则列出所有已安装的轻触。

在未指定 URL 的情况下,使用 HTTPS 从 GitHub 轻触公式存储库。由于许多轻触都托管在 GitHub 上,因此此命令是 brew tap user/repo https://github.com/user/homebrew-repo 的快捷方式。

如果指定了 URL,则可以使用 git(1) 处理的任何传输协议,从任何位置轻触一个公式存储库。tap 的单参数形式简化了操作,但也存在局限性。此双参数命令没有任何假设,因此可以从 GitHub 以外的位置克隆轻触,并使用 HTTPS 以外的协议,例如 SSH、git、HTTP、FTP(S)、rsync。

--custom-remote

使用自定义远程安装或更改轻触。对于镜像很有用。

--repair

将轻触的公式从基于符号链接的结构迁移到基于目录的结构。

--eval-all

评估新轻触中的所有公式、木桶和别名,以检查其有效性。如果设置了 HOMEBREW_EVAL_ALL,则隐含此选项。

--force

即使在 API 模式下,也强制安装核心轻触。

tap-info [--installed] [--json] [tap …]

显示有关一个或多个 tap 的详细信息。如果没有提供 tap 名称,则显示所有已安装轻触的简要统计信息。

--installed

显示每个已安装轻触的信息。

--json

打印 tap 的 JSON 表示形式。目前,version 的默认值且唯一接受的值为 v1。有关使用 JSON 输出的示例,请参阅文档:https://docs.brew.sh.cn/Querying-Brew

uninstall, remove, rm [options] installed_formula|installed_cask […]

卸载 formulacask

-f, --force

删除 formula 的所有已安装版本。即使未安装 cask,也要卸载,覆盖现有文件,并在删除文件时忽略错误。

--zap

删除与 cask 关联的所有文件。可能会删除应用程序之间共享的文件。

--ignore-dependencies

即使 formula 是任何已安装公式的依赖项,也不要卸载失败。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

从 Homebrew 的前缀中删除 formula 的符号链接。这对于暂时禁用公式很有用:brew unlink formula && commands && brew link formula

-n, --dry-run

列出将取消链接的文件,而不会实际取消链接或删除任何文件。

unpin installed_formula […]

取消固定 formula,允许它们通过 brew upgrade formula 进行升级。另请参见 pin

untap [--force] tap […]

删除已点击的公式存储库。

-f, --force

即使当前已安装此点击源中的公式或木桶,也要取消点击。

update [options]

使用 git(1) 从 GitHub 获取 Homebrew 和所有公式的最新版本,并执行任何必要的迁移。

--merge

使用 git merge 应用更新(而不是 git rebase)。

--auto-update

在自动更新时运行(例如在 brew install 之前)。跳过一些较慢的步骤。

-f, --force

始终进行较慢的完整更新检查(即使不必要)。

update-reset [path-to-tap-repository …]

使用 git(1) 获取并重置 Homebrew 和所有点击存储库(或任何指定的 repository)到其最新的 origin/HEAD

注意:这将销毁你所有未提交或已提交的更改。

upgrade [options] [installed_formula|installed_cask …]

使用最初安装它们的相同选项升级过时的木桶和过时的、未固定的公式,以及任何附加的 brew 公式选项。如果指定了 caskformula,则仅升级给定的 caskformula 木桶(除非它们被固定;请参见 pinunpin)。

除非设置了 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK,否则 brew upgradebrew reinstall 将分别针对过时的依赖项和链接损坏的依赖项运行。

除非设置了 HOMEBREW_NO_INSTALL_CLEANUP,否则将运行 brew cleanup 以处理已升级的公式,或每 30 天处理一次所有公式。

-d--debug

如果酿造失败,请使用 IRB 或临时构建目录内的 shell 打开一个交互式调试会话。

--display-times

在运行结束时打印每个软件包的安装时间。

-f, --force

安装公式时不检查以前安装的仅限 keg 或未迁移的版本。安装木桶时,覆盖现有文件(二进制文件和符号链接除外,除非最初来自同一木桶)。

-v, --verbose

打印验证和安装后步骤。

-n, --dry-run

显示将要升级的内容,但实际上不升级任何内容。

--formula

将所有命名参数视为公式。如果没有指定命名参数,则仅升级过时的公式。

-s, --build-from-source

即使有可用的瓶装,也从源代码编译 formula

-i, --interactive

下载并修补 formula,然后打开一个 shell。这允许用户运行 ./configure --help 并确定如何将软件包转换为 Homebrew 包。

--force-bottle

即使通常不会用于安装,如果当前或最新版本的 macOS 存在 bottle,则从 bottle 安装。

--fetch-HEAD

获取上游存储库以检测公式的 HEAD 安装是否已过时。否则,只有在发布新的稳定版本或开发版本时,才会检查存储库的 HEAD 是否有更新。

--keep-tmp

保留安装期间创建的临时文件。

--debug-symbols

在构建时生成调试符号。源代码将保留在缓存目录中。

--overwrite

链接时删除前缀中已存在的文件。

--cask

将所有命名参数视为木桶。如果没有指定命名参数,则仅升级过时的木桶。

--skip-cask-deps

跳过安装 Cask 依赖项。

-g--greedy

还包括 auto_updates trueversion :latest 的木桶。

--greedy-latest

还包括 version :latest 的木桶。

--greedy-auto-updates

还包括 auto_updates true 的木桶。

--[no-]binaries

禁用/启用帮助程序可执行文件的链接(默认:启用)。

--require-sha

要求所有 cask 都具有校验和。

--[no-]quarantine

禁用/启用下载的隔离(默认:启用)。

uses [options] formula […]

显示指定 formula 为依赖项的公式和木桶;也就是说,显示 formula 的依赖项。当给出多个公式参数时,显示使用 formula 的公式的交集。默认情况下,uses 显示所有指定 formula 为其稳定版本所需或推荐依赖项的公式和木桶。

注意: --missing--skip-recommended 优先于 --include-*

--recursive

解析多于一个级别的依赖项。

--installed

仅列出当前已安装的公式和木桶。

--missing

仅列出当前未安装的公式和木桶。

--eval-all

评估所有可用的公式和木桶(无论是否已安装)以显示其依赖项。

--include-build

包括指定 formula:build 依赖项的公式。

--include-test

包括指定 formula:test 依赖项的公式。

--include-optional

包括指定 formula:optional 依赖项的公式。

--skip-recommended

跳过所有指定 formula:recommended 依赖项的公式。

--formula

仅包括公式。

--cask

仅包括木桶。

--cache [options] [formula|cask …]

显示 Homebrew 的下载缓存。另请参见 HOMEBREW_CACHE

如果提供了 formula,则显示用于缓存 formula 的文件或目录。

--os

显示给定操作系统的缓存文件。(传递 all 以显示所有操作系统的缓存文件。)

--arch

显示给定 CPU 架构的缓存文件。(传递 all 以显示所有架构的缓存文件。)

-s, --build-from-source

显示从源代码构建时使用的缓存文件。

--force-bottle

显示倒瓶时使用的缓存文件。

--bottle-tag

显示为给定标签倒瓶时使用的缓存文件。

--HEAD

显示从 HEAD 构建时使用的缓存文件。

--formula

仅显示公式的缓存文件。

--cask

仅显示木桶的缓存文件。

--caskroom [cask …]

显示 Homebrew 的 Caskroom 路径。

如果提供了 cask,则显示 Caskroom 中 cask 将被安装到的位置,而最后一个路径没有任何版本目录。

--cellar [formula …]

显示 Homebrew 的 Cellar 路径。默认值: $(brew --prefix)/Cellar,或者如果该目录不存在,则为 $(brew --repository)/Cellar

如果提供了 formula,则显示 Cellar 中 formula 将被安装到的位置,而最后一个路径没有任何版本目录。

--env, environment [--shell=] [--plain] [formula …]

以纯列表形式总结 Homebrew 的构建环境。

如果命令的输出通过管道发送,并且未指定 shell,则该列表将被格式化为导出到 bash(1),除非传递了 --plain

--shell

为指定的 shell 生成环境变量列表,或 --shell=auto 以检测当前 shell。

--plain

即使通过管道传输,也生成纯输出。

--prefix [--unbrewed] [--installed] [公式 …]

显示 Homebrew 的安装路径。默认值:

如果提供了公式,则显示公式所在或将被安装到的位置。

--unbrewed

列出 Homebrew 的前缀中未由 Homebrew 安装的文件。

--installed

如果未安装公式,则不输出任何内容并返回失败状态代码。

--repository, --repo [轻触 …]

显示 Homebrew 的 Git 存储库所在的位置。

如果提供了用户/存储库,则显示轻触用户/存储库的目录所在的位置。

--version, -v

将 Homebrew、Homebrew/homebrew-core 和 Homebrew/homebrew-cask(如果轻触)的版本号打印到标准输出。

开发者命令

audit [选项] [公式|木桶 …]

检查公式是否违反了 Homebrew 编码风格。在提交新公式或木桶之前应该运行此命令。如果没有提供公式|木桶,则检查所有本地可用的公式和木桶,并跳过样式检查。如果发现任何错误,将退出并显示非零状态。

--os

审核给定的操作系统。(传递 all 来审核所有操作系统。)

--arch

审核给定的 CPU 架构。(传递 all 来审核所有架构。)

--strict

运行其他更严格的样式检查。

--git

运行其他更慢的样式检查,这些检查会导航 Git 存储库。

--online

运行其他更慢的样式检查,这些检查需要网络连接。

--installed

仅检查当前已安装的公式和木桶。

--eval-all

评估所有可用的公式和木桶(无论是否已安装)以对其进行审核。如果设置了 HOMEBREW_EVAL_ALL,则隐含此项。

--new

运行各种其他样式检查,以确定新公式或木桶是否有资格加入 Homebrew。在创建新公式或木桶时应使用此命令,并且隐含 --strict--online

--[no-]signing

对 ARM 上必需的已签名应用进行审核

--token-conflicts

对令牌冲突进行审核。

--tap

检查给定 tap 中的公式,指定为 user/repo

--fix

使用 RuboCop 的自动更正功能自动修复样式违规。

--display-filename

在输出的每一行前加上正在审核的文件或公式名称,以便于 grep 输出。

--skip-style

跳过运行非 RuboCop 样式检查。如果你计划单独运行 brew style,这很有用。默认情况下启用,除非按名称指定公式。

-D, --audit-debug

启用审核方法的调试和分析。

--only

指定一个以逗号分隔的 method 列表,仅运行名为 audit_method 的方法。

--except

指定一个以逗号分隔的 method 列表,跳过运行名为 audit_method 的方法。

--only-cops

指定一个以逗号分隔的 cops 列表,仅检查列出的 RuboCop cops 的违规情况。

--except-cops

指定一个以逗号分隔的 cops 列表,跳过检查列出的 RuboCop cops 的违规情况。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

bottle [options] installed_formula|file […]

从使用 --build-bottle 安装的公式生成一个 bottle(二进制包)。如果公式指定了一个重建版本,它将在生成的 DSL 中递增。传递 --keep-old 将尝试将其保持在原始值,而 --no-rebuild 将将其删除。

--skip-relocation

不要检查 bottle 是否可以标记为可重定位。

--force-core-tap

即使 formula 不在 homebrew/core 或任何已安装的 tap 中,也要构建一个 bottle。

--no-rebuild

如果公式指定了一个重建版本,则从生成的 DSL 中将其移除。

--keep-old

如果公式指定了一个重建版本,则尝试在生成的 DSL 中保留其值。

--json

将瓶子信息写入 JSON 文件,该文件可用作 --merge 的值。

--merge

为公式生成一个更新的瓶子块,并可以选择将其合并到公式文件中。需要使用 brew bottle --json formula 生成的 JSON 文件的路径,而不是公式名称。

--write

将更改写入公式文件。除非传递了 --no-commit,否则将生成一个新的提交。

--no-commit

当与 --write 一起传递时,在将更改写入公式文件后不会生成新的提交。

--only-json-tab

当与 --json 一起传递时,选项卡将被写入 JSON 文件,但不会写入瓶子。

--no-all-checks

不要尝试创建一个 all 瓶子或停止无更改上传。

--committer

git 的标准作者格式中指定提交者姓名和电子邮件。

--root-url

使用指定的 URL 作为瓶子 URL 的根,而不是 Homebrew 的默认值。

--root-url-using

使用指定的下载策略类来下载瓶子的 URL,而不是 Homebrew 的默认值。

bump [options] [formula|cask …]

显示过时的 brew 公式和可用的最新版本。如果返回的当前版本和 livecheck 版本不同,或者在查询特定公式时,还会显示是否已使用 URL 打开拉取请求。

--full-name

打印具有完全限定名称的公式/木桶。

--no-pull-requests

不要从 GitHub 检索拉取请求。

--formula

仅检查公式。

--cask

仅检查木桶。

--tap

检查给定 tap 中的公式和木桶,指定为 user/repo

--installed

检查当前已安装的公式和木桶。

--no-fork

不要尝试分叉存储库。

--open-pr

如果尚未打开新版本的拉取请求,则打开一个。

--limit

限制返回的软件包结果数量。

--start-with

软件包结果列表应按字母顺序排列的字母或单词。

bump-cask-pr [options] cask

创建一个拉取请求,使用新版本更新cask

如果用户未提供值,将尽力确定SHA-256

-n, --dry-run

打印将要执行的操作,而不是实际执行。

--write-only

进行预期的文件修改,而不执行任何 Git 操作。

--commit

--write-only 一起传递时,在对 cask 文件进行更改后生成一个新的提交。

--no-audit

在打开 PR 之前,不要运行 brew audit

--no-style

在打开 PR 之前,不要运行 brew style --fix

--no-browse

打印拉取请求 URL,而不是在浏览器中打开。

--no-fork

不要尝试分叉存储库。

--version

为 cask 指定新的version

--version-arm

为 ARM 架构指定新的 cask version

--version-intel

为 Intel 架构指定新的 cask version

--message

message 添加到默认拉取请求消息之前。

--url

为新下载指定URL

--sha256

指定新下载的SHA-256 校验和。

--fork-org

使用指定的 GitHub 组织进行分叉。

bump-formula-pr [options] [formula]

创建一个拉取请求,使用新的 URL 或新标签更新formula

如果指定了URL,还应指定新下载的SHA-256 校验和。如果用户未提供,将尽力确定SHA-256

如果指定了tag,还应指定与该标签对应的 Git 提交revision。如果用户未提供值,将尽力确定revision

如果指定了version,如果用户未提供这两个值,将尽力确定URLSHA-256tagrevision

注意:此命令无法用于将公式从 URL 和 SHA-256 样式规范转换为标签和修订版样式规范,反之亦然。它必须使用公式已使用的任何样式规范。

-n, --dry-run

打印将要执行的操作,而不是实际执行。

--write-only

进行预期的文件修改,而不执行任何 Git 操作。

--commit

在使用 --write-only 传递时,在将更改写入公式文件后生成新的提交。

--no-audit

在打开 PR 之前,不要运行 brew audit

--strict

在打开 PR 之前运行 brew audit --strict

--online

在打开 PR 之前运行 brew audit --online

--no-browse

打印拉取请求 URL,而不是在浏览器中打开。

--no-fork

不要尝试分叉存储库。

--mirror

将指定的 URL 用作镜像 URL。如果 URL 是由逗号分隔的 URL 列表,则将添加多个镜像。

--fork-org

使用指定的 GitHub 组织进行分叉。

--version

使用指定的 version 覆盖从 URL 或标签中解析的值。请注意,如果 --version=0 已变得多余,则可用于从公式中删除现有的版本覆盖。

--message

message 添加到默认拉取请求消息之前。

--url

指定新下载的 URL。如果指定了 URL,还应指定新下载的 SHA-256 校验和。

--sha256

指定新下载的SHA-256 校验和。

--tag

为公式指定新的 git 提交 tag

--revision

指定与指定的 git tag 或指定的 version 相对应的新的提交 revision

-f, --force

如果未指定 --mirror,则删除所有镜像。

--install-dependencies

安装更新资源所需的缺失依赖项。

--python-package-name

在为 formula 查找 Python 资源时使用指定的 package-name。如果未指定包名称,则将从公式的稳定 URL 中推断出包名称。

--python-extra-packages

在查找资源时包括这些其他 Python 包。

--python-exclude-packages

在查找资源时排除这些 Python 包。

bump-revision [options] formula […]

创建一个提交以增加 formula 的修订版。如果不存在修订版,则将添加“修订版 1”。

-n, --dry-run

打印将要执行的操作,而不是实际执行。

--remove-bottle-block

除了增加修订版本外,还移除 bottle 块。

--write-only

进行预期的文件修改,而不执行任何 Git 操作。

--message

message 附加到默认提交消息。

bump-unversioned-casks [options] cask|tap […]

检查给定 tap 中 URL 未添加版本的所有 cask,以获取更新。

-n, --dry-run

执行除缓存状态和打开拉取请求之外的所有操作。

--limit

以分钟为单位的最大运行时间。

--state-file

用于缓存状态的文件。

cat [--formula] [--cask] formula|cask […]

显示 formulacask 的源。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

contributions [–user=email|username] [--repositories=] [--csv]

总结对 Homebrew 存储库的贡献。

--repositories

指定要搜索的存储库的逗号分隔列表。支持的存储库:brewcorecaskaliasesbundlecommand-not-foundtest-botservicescask-fonts。省略此标志或指定 --repositories=primary,仅搜索主存储库:brew、core、cask。指定 --repositories=all,搜索所有存储库。

--from

开始搜索贡献的日期(ISO-8601 格式)。省略此标志将搜索过去一年。

--to

停止搜索贡献的日期(ISO-8601 格式)。

--user

指定要查找其贡献的 GitHub 用户名或电子邮件地址的逗号分隔列表。省略此标志将搜索维护者。

--csv

打印一段时间内跨存储库的贡献的 CSV。

create [options] URL

生成一个公式,或者使用 --cask,生成一个 cask,用于 URL 中的可下载文件,并在编辑器中打开它。Homebrew 将尝试自动派生公式名称和版本,但如果失败,则必须自己制作模板。 wget 公式是一个简单的示例。有关完整 API,请参阅:https://rubydoc.brew.sh/Formula

--autotools

为 Autotools 样式构建创建一个基本模板。

--cask

为 cask 创建一个基本模板。

--cmake

为 CMake 样式构建创建一个基本模板。

--crystal

为 Crystal 构建创建一个基本模板。

--go

为 Go 构建创建一个基本模板。

--meson

为 Meson 样式构建创建一个基本模板。

--node

为 Node 构建创建一个基本模板。

--perl

为 Perl 构建创建一个基本模板。

--python

为 Python 构建创建一个基本模板。

--ruby

为 Ruby 构建创建一个基本模板。

--rust

为 Rust 构建创建一个基本模板。

--no-fetch

Homebrew 不会将URL下载到缓存中,因此不会将它的 SHA-256 添加到公式中,也不会检查 GitHub API 以获取 GitHub 项目(以填写其描述和主页)。

--HEAD

表明URL指向包的存储库,而不是文件。

--set-name

明确设置新公式或 cask 的name

--set-version

明确设置新公式或 cask 的version

--set-license

明确设置新公式的license

--tap

在给定的 tap 中生成新公式,指定为user/repo

-f, --force

忽略不允许的公式名称和阴影别名的错误。

dispatch-build-bottle [options] formula […]

使用 GitHub Actions 为这些公式构建 bottle。

--tap

目标 tap 存储库(默认:homebrew/core)。

--timeout

构建超时(以分钟为单位,默认:60)。

--issue

如果指定,如果作业失败,则在此问题编号中发布评论。

--macos

应为其构建 bottle 的 macOS 版本(或版本逗号分隔列表)。

--workflow

分派指定的工作流(默认:dispatch-build-bottle.yml)。

--upload

上传构建的 bottles。

--linux

为 Linux 分发 bottle(使用 GitHub runners)。

--linux-self-hosted

为 Linux 分发 bottle(使用自托管 runner)。

--linux-wheezy

在 Linux 上构建 bottle 时使用 Debian Wheezy 容器。

edit [options] [formula|cask|tap …]

在由 EDITORHOMEBREW_EDITOR 设置的编辑器中打开 formulacasktap,如果没有提供参数,则打开 Homebrew 存储库进行编辑。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

--print-path

打印要编辑的文件路径,而不打开编辑器。

extract [--version=] [--force] formula tap

查看存储库历史记录以查找 formula 的最新版本,并在 tap 中创建副本。具体来说,该命令将在 tap/Formula/formula@version.rb 中创建新的 formula 文件。如果尚未安装 tap,请尝试在继续之前安装/克隆 tap。要从不是 homebrew/core 的 tap 中提取 formula,请使用其完全限定形式 user/repo/formula

--version

提取指定的 版本公式,而不是最新版本。

-f, --force

如果目标公式已存在,则覆盖它。

公式 公式 […]

显示 公式 所在的路径。

generate-cask-api [--dry-run]

https://formulae.brew.sh.cn 生成 homebrew/cask API 数据文件。生成的文件将写入当前目录。

-n, --dry-run

生成 API 数据,但不将其写入文件。

generate-formula-api [--dry-run]

https://formulae.brew.sh.cn 生成 homebrew/core API 数据文件。生成的文件将写入当前目录。

-n, --dry-run

生成 API 数据,但不将其写入文件。

generate-man-completions

生成 Homebrew 的手册页和 shell 补全。

install-bundler-gems [--groups=] [--add-groups=]

安装 Homebrew 的 Bundler gem。

--groups

安装指定的逗号分隔的 gem 组列表(默认:上次使用)。替换任何先前安装的组。

--add-groups

安装指定的逗号分隔的 gem 组列表,除了已安装的组之外。

irb [--examples] [--pry]

进入交互式 Homebrew Ruby shell。

--examples

显示几个示例。

--pry

使用 Pry 而不是 IRB。如果设置了 HOMEBREW_PRY,则隐含此选项。

linkage [选项] [已安装公式 …]

检查给定 公式 桶中的库链接。如果没有提供 公式,则检查所有桶。如果在未安装的公式上运行,则会引发错误。

--test

仅显示缺失的库,如果发现任何缺失的库,则退出并显示非零状态。

--strict

如果发现任何未声明的依赖项与链接,则退出并显示非零状态。

--reverse

对于每个 keg 引用库,打印其 dylib 路径,后跟链接到它的二进制文件。

--cached

打印存储在 HOMEBREW_CACHE 中的缓存链接值,由先前的 brew linkage 运行设置。

livecheck, lc [options] [formula|cask …]

检查上游公式和/或 cask 的较新版本。如果没有传递公式或 cask 参数,则要检查的公式和 cask 列表将从 HOMEBREW_LIVECHECK_WATCHLIST~/.homebrew/livecheck_watchlist.txt 中获取。

--full-name

打印具有完全限定名称的公式和 cask。

--tap

检查给定 tap 中的公式和木桶,指定为 user/repo

--eval-all

评估所有可用的公式和 cask,无论是否已安装,以检查它们。

--installed

检查当前已安装的公式和木桶。

--newer-only

仅当最新版本比公式/cask 新时才显示最新版本。

--json

以 JSON 格式输出信息。

-r, --resources

还检查公式的资源。

-q, --quiet

禁止警告,不要为 JSON 输出打印进度条。

--formula

仅检查公式。

--cask

仅检查 cask。

--extract-plist

启用使用 ExtractPlist 策略检查多个 cask。

pr-automerge [options]

使用 brew pr-publish 查找可以自动合并的 pull request。

--tap

目标 tap 存储库(默认:homebrew/core)。

--workflow

brew pr-publish 一起使用的工作流文件。

--with-label

pull request 必须具有此标签。

--without-labels

请求不得包含以下标签(默认:do not mergenew formulaautomerge-skippre-releaseCI-published-bottle-commits)。

--without-approval

请求合并时无需批准。

--publish

对匹配的请求运行 brew pr-publish

--autosquash

指示 brew pr-publish 自动重新格式化和修改请求中的提交内容,使其符合首选格式。

--ignore-failures

包括状态检查失败的请求。

pr-publish [options] pull_request […]

使用 GitHub Actions 为请求发布瓶子。需要对存储库具有写入权限。

--autosquash

如果目标抽头支持,则自动重新格式化和修改提交内容,使其符合我们的首选格式。

--large-runner

在大型运行程序上运行上传作业。

--branch

使用工作流的分支(默认:master)。

--message

自动压缩修订版本升级、删除和重建时要包含的消息。

--tap

目标 tap 存储库(默认:homebrew/core)。

--workflow

目标工作流文件名(默认:publish-commit-bottles.yml)。

pr-pull [options] pull_request […]

下载并发布瓶子,并应用 GitHub Actions 生成的工件中的瓶子提交。需要对存储库具有写入权限。

--no-upload

下载瓶子,但不要上传。

--no-commit

在上传之前不要生成新的提交。

--no-cherry-pick

不要从请求分支中挑选提交。

-n, --dry-run

打印将要执行的操作,而不是实际执行。

--clean

不要修改请求中的提交。

--keep-old

如果公式指定了一个重建版本,则尝试在生成的 DSL 中保留其值。

--autosquash

自动重新格式化和修改请求中的提交内容,使其符合我们的首选格式。

--branch-okay

如果拉取到存储库默认值之外的分支,则不发出警告(对于测试很有用)。

--resolve

当补丁无法应用时,保持进行中状态,并允许用户解决,而不是中止。

--warn-on-upload-failure

如果瓶子上传失败,发出警告而不是引发错误。对于修复之前失败的瓶子上传很有用。

--retain-bottle-dir

不清理瓶子的 tmp 目录,以便以后可以使用它。

--committer

git 的标准作者格式中指定提交者姓名和电子邮件。

--message

自动压缩修订版本升级、删除和重建时要包含的消息。

--artifact-pattern

下载具有指定模式的工件(默认:bottles{,_*})。

--tap

目标 tap 存储库(默认:homebrew/core)。

--root-url

使用指定的 URL 作为瓶子 URL 的根,而不是 Homebrew 的默认值。

--root-url-using

使用指定的下载策略类来下载瓶子的 URL,而不是 Homebrew 的默认值。

--workflows

从指定的工作流中检索工件(默认:tests.yml)。可以是逗号分隔的列表,以包含多个工作流。

--ignore-missing-artifacts

如果尚未运行,则可以忽略的工作流的逗号分隔列表。

pr-upload [options]

应用瓶子提交并将瓶子发布到主机。

--keep-old

如果公式指定了一个重建版本,则尝试在生成的 DSL 中保留其值。

-n, --dry-run

打印将要执行的操作,而不是实际执行。

--no-commit

在上传之前不要生成新的提交。

--warn-on-upload-failure

如果瓶子上传失败,发出警告而不是引发错误。对于修复之前失败的瓶子上传很有用。

--upload-only

在上传之前跳过运行brew bottle

--committer

git 的标准作者格式中指定提交者姓名和电子邮件。

--root-url

使用指定的 URL 作为瓶子 URL 的根,而不是 Homebrew 的默认值。

--root-url-using

使用指定的下载策略类来下载瓶子的 URL,而不是 Homebrew 的默认值。

prof [--stackprof] command […]

使用 Ruby 分析器运行 Homebrew。例如,brew prof readall

--stackprof

使用stackprof而不是ruby-prof(默认)。

release [--major] [--minor]

使用适当的版本号和发行说明创建一个新的 Homebrew/brew 草稿版本。

默认情况下,brew release将增加修订版本号。分别传递--major--minor以增加主要或次要版本号。如果前一个主要或次要版本是在不到一个月前发布的,则该命令将失败。

注意:需要对 Homebrew/brew 存储库具有写访问权限。

--major

创建主要版本。

--minor

创建次要版本。

rubocop

安装、配置和运行 Homebrew 的rubocop

ruby [options] (-e text|file)

运行一个加载了 Homebrew 库的 Ruby 实例。例如,brew ruby -e "puts :gcc.f.deps"brew ruby script.rb

例如,运行brew ruby -- --version以将任意参数传递给ruby

-r

使用require加载库。

-e

将给定的文本字符串作为脚本执行。

rubydoc [--only-public] [--open]

生成 Homebrew 的 RubyDoc 文档。

--only-public

仅生成公共 API 文档。

--open

在浏览器中打开生成的文档。

sh [--env=] [--cmd=] [file]

进入 Homebrew 构建环境的交互式 shell。使用历经多年考验的构建逻辑来帮助你的 ./configure && make && make install 甚至你的 gem install 成功。如果你在仅限 Xcode 的配置中运行 Homebrew,这尤其方便,因为它会将 make 等工具添加到你的 PATH 中,而构建系统原本找不到这些工具。

--env

当传递 std 时,使用标准 PATH 而不是 superenv 的 PATH

-c, --cmd

在非交互式 shell 中执行命令。

style [options] [file|tap|formula|cask …]

检查公式或文件是否符合 Homebrew 样式指南。

filetapformula 的列表不得合并。如果没有提供任何列表,style 将对整个 Homebrew 库(包括核心代码和所有公式)运行样式检查。

--fix

使用 RuboCop 的自动更正功能自动修复样式违规。

--reset-cache

重置 RuboCop 缓存。

--formula

将所有命名参数视为公式。

--cask

将所有命名参数视为木桶。

--only-cops

指定一个以逗号分隔的 cops 列表,仅检查列出的 RuboCop cops 的违规情况。

--except-cops

指定一个以逗号分隔的 cops 列表,跳过检查列出的 RuboCop cops 的违规情况。

tap-new [options] user/repo

为新 tap 生成模板文件。

--no-git

不要为 tap 初始化 Git 存储库。

--pull-label

准备拉取的拉取请求的标签名称(默认:pr-pull)。

--branch

初始化 Git 存储库并使用指定的 branch 名称设置 GitHub Actions 工作流(默认:main)。

--github-packages

将 bottle 上传到 GitHub Packages。

test [options] installed_formula […]

运行已安装公式提供的测试方法。没有标准输出或返回代码,但通常如果已安装的公式出现问题,它应该会通知用户。

示例: brew install jruby && brew test jruby

-f, --force

即使公式未链接,也要测试它们。

--HEAD

测试公式的 HEAD 版本。

--keep-tmp

保留为测试创建的临时文件。

--retry

如果测试失败,则重试。

tests [options]

运行 Homebrew 的单元和集成测试。

--coverage

生成代码覆盖率报告。

--generic

仅运行与操作系统无关的测试。

--online

包括使用 GitHub API 的测试以及使用任何官方外部命令的 tap 的测试。

--debug

使用 ruby/debug 启用调试,或显示标准 odebug 输出。

--changed

仅对与主分支不同的文件运行测试。

--fail-fast

在第一个失败的测试中提前退出。

--only

仅运行 <test_script>_spec.rb。附加 :<line_number> 将从特定行开始。

--profile

按顺序运行测试套件以查找n 个最慢的测试。

--seed

使用指定的value 随机化测试,而不是随机种子。

typecheck, tc [options]

使用 Sorbet 检查类型检查错误。

--fix

自动修复类型错误。

-q, --quiet

使所有非关键错误静默。

--update

更新 RBI 文件。

--update-all

更新所有 RBI 文件,而不仅仅是更新的 gem。

--suggest-typed

尝试升级 typed sigils。

--dir

类型检查特定目录中的所有文件。

--file

类型检查单个文件。

--ignore

忽略路径中包含给定字符串的输入文件(相对于传递给 Sorbet 的输入路径)。

unbottled [options] [formula …]

显示公式的未装瓶依赖项。

--tag

使用指定的瓶子标签(例如 big_sur),而不是当前操作系统。

--dependents

跳过获取分析数据,并按依赖项数量排序。

--total

打印未装瓶和总公式数。

--lost

打印上周瓶子丢失的 homebrew/core 提交。

--eval-all

评估所有可用的公式和 cask,无论是否已安装,以检查它们。如果设置了 HOMEBREW_EVAL_ALL,则隐含此选项。

unpack [options] formula […]

formula 的源文件解压缩到当前工作目录的子目录中。

--destdir

在名为 path 的目录中创建子目录。

--patch

formula 的补丁将应用于解压缩的源代码。

-g, --git

在解压缩的源代码中初始化一个 Git 存储库。这对于创建软件补丁很有用。

-f, --force

如果目标目录已存在,则覆盖它。

update-license-data

更新 Homebrew 存储库中的 SPDX 许可数据。

update-maintainers

更新 Homebrew/brew README 中的维护者列表。

update-python-resources [options] formula […]

更新 formula 中 PyPI 资源块的版本。

-p, --print-only

打印更新的资源块,而不是更改 formula

-s, --silent

禁止任何输出。

--ignore-non-pypi-packages

如果 formula 不是 PyPI 包,则不要失败。

--install-dependencies

安装更新资源所需的缺失依赖项。

--version

在为 formula 查找资源时使用指定的 version。如果未指定版本,则将使用 formula 的当前版本。

--package-name

在为 formula 查找资源时使用指定的 package-name。如果未指定包名,则将从公式的稳定 URL 中推断出包名。

--extra-packages

查找资源时包含这些其他包。

--exclude-packages

查找资源时排除这些包。

update-sponsors

更新 Homebrew/brew README 中的 GitHub 赞助商列表。

update-test [options]

使用新的存储库克隆运行 brew update 测试。如果没有传递任何选项,则使用 origin/master 作为起始提交。

--to-tag

HOMEBREW_UPDATE_TO_TAG 设置为测试标签之间的更新。

--keep-tmp

保留包含新存储库克隆的临时目录。

--commit

使用指定的 commit 作为起始提交。

--before

使用指定 date 的提交作为起始提交。

vendor-gems [--update=] [--no-commit]

安装并提交 Homebrew 的供应商 gem。

--update

将指定的供应商 gem 列表更新到最新版本。

--no-commit

完成时不生成新的提交。

全局 CASK 选项

这些选项适用于带有 --cask 开关的 installreinstallupgrade 子命令。

--appdir

应用程序的目标位置(默认:/Applications)。

--keyboard-layoutdir

键盘布局的目标位置(默认:/Library/Keyboard Layouts)。

--colorpickerdir

颜色选择器的目标位置(默认:~/Library/ColorPickers)。

--prefpanedir

偏好窗格的目标位置(默认:~/Library/PreferencePanes)。

--qlplugindir

快速查看插件的目标位置(默认:~/Library/QuickLook)。

--mdimporterdir

聚光灯插件的目标位置(默认:~/Library/Spotlight)。

--dictionarydir

词典的目标位置(默认:~/Library/Dictionaries)。

--fontdir

字体目标位置(默认:~/Library/Fonts)。

--servicedir

服务目标位置(默认:~/Library/Services)。

--input-methoddir

输入法目标位置(默认:~/Library/Input Methods)。

--internet-plugindir

Internet 插件目标位置(默认:~/Library/Internet Plug-Ins)。

--audio-unit-plugindir

Audio Unit 插件目标位置(默认:~/Library/Audio/Plug-Ins/Components)。

--vst-plugindir

VST 插件目标位置(默认:~/Library/Audio/Plug-Ins/VST)。

--vst3-plugindir

VST3 插件目标位置(默认:~/Library/Audio/Plug-Ins/VST3)。

--screen-saverdir

屏幕保护程序目标位置(默认:~/Library/Screen Savers)。

--language

逗号分隔的语言代码列表,用于 cask 安装。使用第一个匹配的语言,否则将恢复到 cask 的默认语言。默认值为系统的语言。

全局选项

这些选项适用于多个子命令。

-d--debug

显示所有调试信息。

-q, --quiet

使某些输出更安静。

-v, --verbose

使某些输出更详细。

-h, --help

显示此消息。

官方外部命令

alias [alias … | alias=command]

显示现有别名。如果没有给出别名,则打印整个列表。

--edit

在文本编辑器中编辑别名。一次可以打开一个或所有别名。如果给定的别名不存在,它将预先填充一个模板。

bundle [subcommand]

Homebrew、Homebrew Cask、Mac App Store、Whalebrew 和 Visual Studio Code 中非 Ruby 依赖项的捆绑器。

brew bundle [install]

安装并升级(默认)Brewfile 中的所有依赖项。

你可以使用 --file 或通过设置 HOMEBREW_BUNDLE_FILE 环境变量来指定 Brewfile 位置。

您可以通过向以下一个或多个环境变量添加空格分隔的值来跳过依赖项的安装:HOMEBREW_BUNDLE_BREW_SKIPHOMEBREW_BUNDLE_CASK_SKIPHOMEBREW_BUNDLE_MAS_SKIPHOMEBREW_BUNDLE_WHALEBREW_SKIPHOMEBREW_BUNDLE_TAP_SKIP

如果所有依赖项都已成功安装,brew bundle 将在与 Brewfile 相同的目录中输出 Brewfile.lock.json。其中包含依赖项和系统状态信息,这对于调试 brew bundle 故障和复制“上次已知良好构建”状态很有用。您可以通过设置 HOMEBREW_BUNDLE_NO_LOCK 环境变量或传递 --no-lock 选项来选择退出此行为。您可能希望将此文件检入与 Brewfile 相同的版本控制系统(或者确保您的版本控制系统忽略它,如果您希望依赖本地计算机的调试信息)。

brew bundle dump

将所有已安装的 cask/formulae/images/taps 写入当前目录中的 Brewfile

brew bundle cleanup

卸载 Brewfile 中不存在的所有依赖项。

此工作流对于定期安装大量公式的维护人员或测试人员很有用。

brew bundle check

检查 Brewfile 中是否存在的所有依赖项。

如果一切都是最新的,这将提供一个成功的退出代码,使其可用于脚本编写。

brew bundle list

列出 Brewfile 中存在的所有依赖项。

默认情况下,仅列出 Homebrew 公式依赖项。

brew bundle exec command

在基于 Brewfile 依赖项的隔离构建环境中运行外部命令。

此已清理的构建环境忽略未请求的依赖项,这可确保您在 Brewfile 中未指定的内容不会被 bundle installnpm install 等命令选中。它还将添加编译器标志,这将有助于查找仅限 keg 的依赖项,例如 opensslicu4c 等。

--file

从此位置读取 Brewfile。使用 --file=- 通过管道传输到标准输入/标准输出。

--global

~/.BrewfileHOMEBREW_BUNDLE_FILE_GLOBAL 环境变量(如果已设置)读取 Brewfile

-v, --verbose

install 在运行命令时打印输出。 check 列出所有缺失的依赖项。

--no-upgrade

install 不会对过时的依赖项运行 brew upgrade。请注意,如果需要,它们仍可能被 brew install 升级。

-f, --force

install 使用 --force/--overwrite 运行。 dump 会覆盖现有的 Brewfilecleanup 实际上会执行其清理操作。

--cleanup

install 执行清理操作,与运行 cleanup --force 相同。如果设置了 HOMEBREW_BUNDLE_INSTALL_CLEANUP 并且传递了 --global,则默认启用此功能。

--no-lock

install 不会输出 Brewfile.lock.json

--all

list 所有依赖项。

--formula

list Homebrew 配方依赖项。

--cask

list Homebrew cask 依赖项。

--tap

list Homebrew tap 依赖项。

--mas

list Mac App Store 依赖项。

--whalebrew

list Whalebrew 依赖项。

--vscode

list VSCode 扩展。

--describe

dump 在每行上方添加描述注释,除非依赖项没有描述。如果设置了 HOMEBREW_BUNDLE_DUMP_DESCRIBE,则默认启用此功能。

--no-restart

dump 不会将 restart_service 添加到配方行。

--zap

cleanup 使用 zap 命令而不是 uninstall 命令来清理 cask。

command-not-found-init

打印设置 shell 的 command-not-found 钩子的说明。如果输出不是 tty,则打印 shell 的相应处理程序脚本。

services [子命令]

使用 macOS 的 launchctl(1) 守护进程管理器或 Linux 的 systemctl(1) 服务管理器管理后台服务。

如果传递了 sudo,则在 /Library/LaunchDaemons//usr/lib/systemd/system(在启动时启动)上操作。否则,在 ~/Library/LaunchAgents/~/.config/systemd/user(在登录时启动)上操作。

[sudo] brew services [list] (--json) (--debug)

列出当前用户(或 root)所有已管理服务的相关信息。如果使用 --debug 运行,则会提供更多来自 Homebrew 和 launchctl(1) 或 systemctl(1) 的输出。

[sudo] brew services info (公式|--all|--json)

列出当前用户(或 root)所有已管理的服务。

[sudo] brew services run (公式|--all)

运行服务 公式,无需注册在登录(或启动)时启动。

[sudo] brew services start (公式|--all|--file=)

立即启动服务 公式,并注册它在登录(或启动)时启动。

[sudo] brew services stop (formula|--all)

立即停止服务 formula,并取消其在登录(或启动)时启动的注册。

[sudo] brew services kill (formula|--all)

立即停止服务 formula,但保留其在登录(或启动)时启动的注册。

[sudo] brew services restart (formula|--all)

立即停止(如果需要)并启动服务 formula,并将其注册为在登录(或启动)时启动。

[sudo] brew services cleanup

移除所有未使用的服务。

--file

使用此位置的服务文件来 start 服务。

--sudo-service-user

当在 macOS 上以 root 身份运行时,以该用户身份运行服务。

--all

对所有服务运行 subcommand

--json

以 JSON 格式输出。

--no-wait

不要等待 stop 完成停止服务。

test-bot [options] [formula]

测试 Homebrew 对 tap(Git 仓库)的更改的完整生命周期。例如,对于更改公式的 GitHub Actions 拉取请求,brew test-bot 将确保系统已清理并设置为测试公式,安装公式,对其运行各种测试和检查,打包(打包)二进制文件并测试依赖于它的公式以确保这些更改不会破坏它们。

仅支持 GitHub Actions 作为 CI 提供商。这是因为 Homebrew 使用 GitHub Actions,并且可以免费用于 macOS 和 Linux 工作人员的公共和私人用途。

--dry-run

打印将要执行的操作,而不是实际执行。

--cleanup

清除 Homebrew 目录中的所有状态。请谨慎使用!

--skip-setup

不要检查本地系统是否设置正确。

--build-from-source

从源代码构建,而不是构建 bottle。

--build-dependents-from-source

从源代码构建依赖项,而不是测试 bottle。

--junit

生成一个 JUnit XML 测试结果文件。

--keep-old

运行 brew bottle --keep-old 为单个平台构建新版本。

--skip-relocation

运行 brew bottle --skip-relocation 构建不需要重新定位的新版本。

--only-json-tab

运行 brew bottle --only-json-tab 构建不包含制表符的新版本。

--local

要求 Homebrew 在 ./logs/ 下写入详细日志,并将 $HOME 设置为 ./home/

--tap

使用给定 tap 的 Git 存储库。对于语法检查,默认为核心 tap。

--fail-fast

在失败步骤上立即退出。

-v, --verbose

实时打印测试步骤输出。具有将输出作为原始字节传递而不是重新编码为 UTF-8 的副作用。

--test-default-formula

在不构建 tap 且未指定其他公式时,使用默认测试公式。

--root-url

使用指定的 URL 作为瓶子 URL 的根,而不是 Homebrew 的默认值。

--git-name

将 Git 作者/提交者姓名设置为给定姓名。

--git-email

将 Git 作者/提交者电子邮件设置为给定电子邮件。

--publish

发布上传的版本。

--skip-online-checks

不要将 --online 传递给 brew audit,并跳过 brew livecheck

--skip-new

不要将 --new 传递给 brew audit 以获取新公式。

--skip-new-strict

不要将 --strict 传递给 brew audit 以获取新公式。

--skip-dependents

不要测试任何依赖项。

--skip-livecheck

不要测试 livecheck。

--skip-recursive-dependents

仅测试直接依赖项。

--skip-checksum-only-audit

不要审核仅校验和的更改。

--skip-stable-version-audit

不要审核稳定版本。

--skip-revision-audit

不要审核修订版本。

--only-cleanup-before

仅运行预清理步骤。需要 --cleanup

--only-setup

仅运行本地系统设置检查步骤。

--only-tap-syntax

仅运行 tap 语法检查步骤。

--stable

仅运行稳定 brew 上所需的 tap 语法检查。

--only-formulae

仅运行公式步骤。

--only-formulae-detect

仅运行公式检测步骤。

--only-formulae-dependents

仅运行公式依赖项步骤。

--only-bottles-fetch

仅运行瓶获取步骤。此可选的后上传测试检查所有瓶是否已正确上传。除非请求,否则不会运行,并且仅需在单台机器上运行。要测试的瓶提交必须在测试分支上。

--only-cleanup-after

仅运行后清理步骤。需要 --cleanup

--testing-formulae

使用这些测试公式,而不是运行公式检测步骤。

--added-formulae

使用这些已添加公式,而不是运行公式检测步骤。

--deleted-formulae

使用这些已删除公式,而不是运行公式检测步骤。

--skipped-or-failed-formulae

使用公式步骤中这些已跳过或失败的公式,用于公式依赖项步骤。

unalias alias […]

移除别名。

which-formula [--explain] command […]

显示哪个公式提供了给定的命令。

--explain

输出解释,说明如何通过安装一个提供公式来获取 command

which-update [options] [database]

用于 brew which-formula 的数据库更新。

--stats

打印有关数据库内容的统计信息(命令和公式的数量,缺少公式的列表)。

--commit

使用 git 提交更改。

--update-existing

使用过时的公式版本更新数据库条目。

--install-missing

安装和更新数据库中缺少且没有瓶的公式。

--eval-all

评估所有已安装的 tap,而不仅仅是核心 tap。

--max-downloads

指定要下载和更新的最大公式数。

自定义外部命令

git(1) 一样,Homebrew 支持外部命令。这些是可执行脚本,位于 PATH 中的某个位置,名为 brew-cmdnamebrew-cmdname.rb,可以像 brew cmdname 一样调用。这允许您创建自己的命令,而无需修改 Homebrew 的内部结构。

有关创建自己命令的说明可以在文档中找到:https://docs.brew.sh.cn/External-Commands

指定配方

许多 Homebrew 命令接受一个或多个formula 参数。这些参数可以采用几种不同的形式

指定木桶

许多 Homebrew Cask 命令接受一个或多个cask 参数。这些参数可以与上面 SPECIFYING FORMULAE 中描述的formula 参数以相同的方式指定。

环境

请注意,环境变量必须设置一个值才能被检测到。例如,运行 export HOMEBREW_NO_INSECURE_REDIRECT=1,而不是仅仅运行 export HOMEBREW_NO_INSECURE_REDIRECT

HOMEBREW_* 环境变量也可以在 Homebrew 的环境文件中设置

用户特定的环境文件优先于前缀特定的文件,而前缀特定的文件优先于系统范围的文件(除非设置了 HOMEBREW_SYSTEM_ENV_TAKES_PRIORITY,请参见下文)。

请注意,这些文件不支持 shell 变量扩展,例如 $HOME 或命令执行,例如 $(cat file)

HOMEBREW_API_AUTO_UPDATE_SECS

每隔 HOMEBREW_API_AUTO_UPDATE_SECS 秒检查 Homebrew 的 API 以获取新配方或 cask 数据。或者,使用 HOMEBREW_NO_AUTO_UPDATE 完全禁用 API 自动更新检查。

默认值: 450

HOMEBREW_API_DOMAIN

使用此 URL 作为 Homebrew JSON API 的下载镜像。如果该 URL 处的元数据文件暂时不可用,则默认 API 域将用作后备镜像。

默认值: https://formulae.brew.sh.cn/api

HOMEBREW_ARCH

仅限 Linux:将此值传递给表示编译器 -march 选项的类型名称。

默认值: native

HOMEBREW_ARTIFACT_DOMAIN

使用此值作为所有下载 URL 的前缀,包括瓶子的 URL。例如,HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080 将导致 URL 为 https://example.com/foo.tar.gz 的配方改为从 http://localhost:8080/https://example.com/foo.tar.gz 下载。但是,瓶子 URL 的域将被此前缀替换。这会导致例如 https://ghcr.io/v2/homebrew/core/gettext/manifests/0.21 改为从 http://localhost:8080/v2/homebrew/core/gettext/manifests/0.21 下载。

HOMEBREW_AUTOREMOVE

如果设置,调用 brew cleanupbrew uninstall 将自动删除未使用的配方依赖项,如果未设置 HOMEBREW_NO_INSTALL_CLEANUPbrew cleanup 将开始定期运行 brew autoremove

HOMEBREW_AUTO_UPDATE_SECS

在某些命令之前(例如 brew installbrew upgradebrew tap)每隔 HOMEBREW_AUTO_UPDATE_SECS 秒运行一次 brew update。或者,使用 HOMEBREW_NO_AUTO_UPDATE 完全禁用自动更新。

默认值: 86400(24 小时),如果已运行开发人员命令,则为 3600(1 小时),如果设置了 HOMEBREW_NO_INSTALL_FROM_API,则为 300(5 分钟)。

HOMEBREW_BAT

如果设置,使用 bat 作为 brew cat 命令。

HOMEBREW_BAT_CONFIG_PATH

将其用作 bat 配置文件。

默认值: $BAT_CONFIG_PATH

HOMEBREW_BAT_THEME

用作 bat 主题,用于语法高亮。

默认值: $BAT_THEME

HOMEBREW_BOOTSNAP

如果设置,使用 Bootsnap 加快重复 brew 调用。在 macOS 上使用 Homebrew 的供应商可重定位 Ruby 时为无操作(因为它不起作用)。

HOMEBREW_BOTTLE_DOMAIN

使用此 URL 作为瓶子的下载镜像。如果该 URL 上的瓶子暂时不可用,则默认瓶子域将用作后备镜像。例如,HOMEBREW_BOTTLE_DOMAIN=http://localhost:8080 将导致所有瓶子从前缀 http://localhost:8080/ 下载。如果瓶子在 HOMEBREW_BOTTLE_DOMAIN 中不可用,则它们将从默认瓶子域下载。

默认值: https://ghcr.io/v2/homebrew/core

HOMEBREW_BREW_GIT_REMOTE

使用此 URL 作为 Homebrew/brew git(1) 远程。

默认值: https://github.com/Homebrew/brew

HOMEBREW_BROWSER

在打开项目主页时用作浏览器。

默认值: $BROWSER 或操作系统的默认浏览器。

HOMEBREW_CACHE

使用此目录作为下载缓存。

默认值: macOS:$HOME/Library/Caches/Homebrew,Linux:$XDG_CACHE_HOME/Homebrew$HOME/.cache/Homebrew

HOMEBREW_CASK_OPTS

将这些选项附加到所有 cask 命令。所有 --*dir 选项、--language--require-sha--no-quarantine--no-binaries 都受支持。例如,您可以在 ~/.profile~/.bash_profile~/.zshenv 中添加类似以下内容:

export HOMEBREW_CASK_OPTS="--appdir=~/Applications --fontdir=/Library/Fonts"

HOMEBREW_CLEANUP_MAX_AGE_DAYS

清理所有比此天数更早的缓存文件。

默认值: 120

HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS

如果设置,brew installbrew upgradebrew reinstall 将在经过此天数后清理所有公式。

默认: 30

HOMEBREW_COLOR

如果设置,在非 TTY 输出上强制输出颜色。

HOMEBREW_CORE_GIT_REMOTE

将此 URL 用作 Homebrew/homebrew-core git(1) 远程。

默认: https://github.com/Homebrew/homebrew-core

HOMEBREW_CURLRC

如果设置为绝对路径(即以 / 开头),在调用 curl(1) 时使用 --config 传递它。如果设置但不是有效路径,请不要传递 --disable,这会禁用 .curlrc 的使用。

HOMEBREW_CURL_PATH

仅限 Linux:将此值设置为 Homebrew 可使用的足够新的 curl 可执行文件。

默认: curl

HOMEBREW_CURL_RETRIES

在调用 curl(1) 时将给定的重试次数传递给 --retry

默认: 3

HOMEBREW_CURL_VERBOSE

如果设置,在调用 curl(1) 时传递 --verbose

HOMEBREW_DEBUG

如果设置,在运行命令时始终假定 --debug

HOMEBREW_DEVELOPER

如果设置,调整行为以与 Homebrew 开发人员(活跃或萌芽)更相关,例如将警告变为错误。

HOMEBREW_DISABLE_LOAD_FORMULA

如果设置,拒绝加载公式。这在不信任公式时很有用(例如在拉取请求中)。

HOMEBREW_DISPLAY

在浏览器中打开页面时使用此 X11 显示,例如使用 brew home。主要在 Linux 上有用。

默认: $DISPLAY

HOMEBREW_DISPLAY_INSTALL_TIMES

如果设置,在运行结束时打印每个公式的安装时间。

HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN

使用此 base64 编码的用户名和密码来验证使用 GitHub Packages 代理的 Docker 注册表。如果设置了 HOMEBREW_DOCKER_REGISTRY_TOKEN,则将使用它。

HOMEBREW_DOCKER_REGISTRY_TOKEN

使用此载体令牌来验证使用 GitHub Packages 代理的 Docker 注册表。优于 HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN

HOMEBREW_EDITOR

在编辑单个公式或同一目录中的多个公式时使用此编辑器。

注意: brew edit 将打开所有 Homebrew 作为不连续的文件和目录。Visual Studio Code 可以通过项目模式正确处理此问题,但许多编辑器在这种情况下会执行奇怪的操作。

默认值: $EDITOR$VISUAL

HOMEBREW_EVAL_ALL

如果设置,brew 命令将评估所有公式和木桶,执行它们的任意代码,默认情况下无需 --eval-all。需要缓存公式和木桶描述。

HOMEBREW_FAIL_LOG_LINES

在公式 system 失败时输出此数量的输出行。

默认值: 15

HOMEBREW_FORBIDDEN_CASKS

木桶的空格分隔列表。如果木桶或其任何依赖项在此列表中,Homebrew 将拒绝安装木桶。

HOMEBREW_FORBIDDEN_FORMULAE

公式的空格分隔列表。如果公式或其任何依赖项在此列表中,Homebrew 将拒绝安装公式或木桶。

HOMEBREW_FORBIDDEN_LICENSES

许可证的空格分隔列表。如果公式或其任何依赖项具有此列表中的许可证,Homebrew 将拒绝安装公式。

HOMEBREW_FORBIDDEN_OWNER

设置任何 HOMEBREW_FORBIDDEN_* 变量的人员。

默认值: you

HOMEBREW_FORBIDDEN_OWNER_CONTACT

如果设置且有必要,如何联系 HOMEBREW_FORBIDDEN_OWNER

HOMEBREW_FORBIDDEN_TAPS

以空格分隔的 tap 列表。如果某个公式或其任何依赖项位于此列表中的 tap 中,Homebrew 将拒绝安装该公式。

HOMEBREW_FORCE_BREWED_CA_CERTIFICATES

如果设置,则始终使用 Homebrew 安装的 ca-certificates,而不是系统版本。如果系统版本过旧,则自动设置。

HOMEBREW_FORCE_BREWED_CURL

如果设置,则始终使用 Homebrew 安装的 curl(1),而不是系统版本。如果 curl 的系统版本过旧,则自动设置。

HOMEBREW_FORCE_BREWED_GIT

如果设置,则始终使用 Homebrew 安装的 git(1),而不是系统版本。如果 git 的系统版本过旧,则自动设置。

HOMEBREW_FORCE_VENDOR_RUBY

如果设置,则始终使用 Homebrew 提供的、可重定位的 Ruby 版本,即使 Ruby 的系统版本足够新。

HOMEBREW_FORMULA_BUILD_NETWORK

如果设置,则控制公式构建的沙盒网络访问。覆盖公式内部通过 DSL 使用设置的任何控件。必须是 allowdeny。如果未通过此环境变量或 DSL 使用设置任何值,则默认行为是 allow

HOMEBREW_FORMULA_POSTINSTALL_NETWORK

如果设置,则控制公式安装后的沙盒网络访问。覆盖公式内部通过 DSL 使用设置的任何控件。必须是 allowdeny。如果未通过此环境变量或 DSL 使用设置任何值,则默认行为是 allow

HOMEBREW_FORMULA_TEST_NETWORK

如果设置,则控制公式测试的沙盒网络访问。覆盖公式内部通过 DSL 使用设置的任何控件。必须是 allowdeny。如果未通过此环境变量或 DSL 使用设置任何值,则默认行为是 allow

HOMEBREW_GITHUB_API_TOKEN

将此个人访问令牌用于 GitHub API,以获取 brew search 等功能。你可以在 https://github.com/settings/tokens 创建一个。如果设置,GitHub 将允许你进行更多数量的 API 请求。有关更多信息,请参阅:https://githubdocs.cn/en/rest/overview/rate-limits-for-the-rest-api

注意:Homebrew 不需要任何范围的权限,但某些开发者命令可能需要其他权限。

HOMEBREW_GITHUB_PACKAGES_TOKEN

访问 GitHub Packages 注册表(其中可能存储瓶子)时使用此 GitHub 个人访问令牌。

HOMEBREW_GITHUB_PACKAGES_USER

访问 GitHub Packages 注册表(其中可能存储瓶子)时使用此用户名。

HOMEBREW_GIT_EMAIL

将 Git 作者和提交者电子邮件设置为此值。

HOMEBREW_GIT_NAME

将 Git 作者和提交者名称设置为此值。

HOMEBREW_GIT_PATH

仅限 Linux:将此值设置为足够新的 git 可执行文件,以便 Homebrew 使用。

默认值: git

HOMEBREW_INSTALL_BADGE

在每次成功构建的安装摘要之前打印此文本。

默认值:“啤酒杯”表情符号。

HOMEBREW_LIVECHECK_WATCHLIST

当未将公式参数传递给 brew livecheck 时,请查阅此文件以获取默认情况下要检查的公式列表。

默认值:如果设置了 $XDG_CONFIG_HOME,则为 $XDG_CONFIG_HOME/homebrew/livecheck_watchlist.txt,否则为 $HOME/.homebrew/livecheck_watchlist.txt

HOMEBREW_LOGS

使用此目录存储日志文件。

默认值:macOS:$HOME/Library/Logs/Homebrew,Linux:$XDG_CACHE_HOME/Homebrew/Logs$HOME/.cache/Homebrew/Logs

HOMEBREW_MAKE_JOBS

使用此值作为使用 make(1) 构建时要运行的并行作业数。

默认值:可用 CPU 内核数。

HOMEBREW_NO_ANALYTICS

如果设置,则不发送分析数据。Google Analytics 已被销毁。有关更多信息,请参阅:https://docs.brew.sh.cn/Analytics

HOMEBREW_NO_AUTO_UPDATE

如果设置,在运行某些命令之前不要自动更新,例如 brew installbrew upgradebrew tap。最好通过将 HOMEBREW_AUTO_UPDATE_SECS 设置为高于默认值来减少运行此命令的频率。请注意,设置此选项并例如点击新点击可能会导致配置损坏。请确保在报告任何问题之前始终运行 brew update

HOMEBREW_NO_BOOTSNAP

如果设置,不要使用 Bootsnap 来加速重复的 brew 调用。

HOMEBREW_NO_CLEANUP_FORMULAE

由逗号分隔的公式列表。如果公式出现在此列表中,Homebrew 将拒绝清理或自动删除该公式。

HOMEBREW_NO_COLOR

如果设置,不要打印添加了颜色的文本。

默认值: $NO_COLOR

HOMEBREW_NO_EMOJI

如果设置,不要在构建成功时打印 HOMEBREW_INSTALL_BADGE

HOMEBREW_NO_ENV_HINTS

如果设置,不要打印任何有关使用环境变量更改 Homebrew 行为的提示。

HOMEBREW_NO_GITHUB_API

如果设置,不要使用 GitHub API,例如在安装失败后进行搜索或获取相关问题。

HOMEBREW_NO_INSECURE_REDIRECT

如果设置,禁止从安全的 HTTPS 重定向到不安全的 HTTP。

注意:虽然确保您的下载完全安全,但这可能会导致从 SourceForge、一些 GNU 和 GNOME 托管的公式下载失败。

HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK

如果设置,在安装、升级或重新安装公式后,不要检查依赖项的损坏链接或过时的依赖项。这将导致更少的依赖项(及其依赖项)被升级或重新安装,但可能会导致运行 brew install formulabrew upgrade formula 导致更多损坏。

HOMEBREW_NO_INSTALL_CLEANUP

如果设置,brew installbrew upgradebrew reinstall 将永远不会自动清理已安装/已升级/已重新安装的公式或每 HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS 天清理所有公式。或者,HOMEBREW_NO_CLEANUP_FORMULAE 允许指定不清理的特定公式。

HOMEBREW_NO_INSTALL_FROM_API

如果设置,不要使用 Homebrew 的 API 在 homebrew/core 和 homebrew/cask 点击中安装公式和木桶,而是使用这些存储库的(大而慢的)本地检出。

HOMEBREW_NO_INSTALL_UPGRADE

如果设置,brew install formula|cask 将不会升级 formula|cask(如果已安装但已过时)。

HOMEBREW_NO_UPDATE_REPORT_NEW

如果设置,brew update 将不会显示新添加的配方/桶列表。

HOMEBREW_PIP_INDEX_URL

如果设置,brew install formula 将使用此 URL 下载 PyPI 包资源。

默认值: https://pypi.org/simple

HOMEBREW_PRY

如果设置,为 brew irb 命令使用 Pry。

HOMEBREW_SIMULATE_MACOS_ON_LINUX

如果设置,在 Linux 上运行 Homebrew 将模拟某些 macOS 代码路径。在 Linux 上审核 macOS 配方时,这很有用。

HOMEBREW_SKIP_OR_LATER_BOTTLES

如果与 HOMEBREW_DEVELOPER 一起设置,请勿使用来自旧版 macOS 的瓶子。这在开发新版 macOS 时很有用。

HOMEBREW_SORBET_RUNTIME

如果设置,使用 Sorbet 启用运行时类型检查。对于 HOMEBREW_DEVELOPER 或运行某些开发人员命令时默认设置。

HOMEBREW_SSH_CONFIG_PATH

如果设置,Homebrew 将使用给定的配置文件,而不是通过 SSH 获取 Git 存储库时的 ~/.ssh/config

默认值: $HOME/.ssh/config

HOMEBREW_SUDO_THROUGH_SUDO_USER

如果设置,Homebrew 将使用 SUDO_USER 环境变量来定义在运行 sudo(8) 时要通过 sudo(8) 的用户。

HOMEBREW_SVN

将其用作 svn(1) 二进制文件。

默认值: Homebrew 构建的 Subversion(如果已安装)或系统提供的二进制文件。

HOMEBREW_SYSTEM_ENV_TAKES_PRIORITY

如果在 Homebrew 的系统范围环境文件中设置(/etc/homebrew/brew.env),则系统范围环境文件将最后加载以覆盖任何前缀或用户设置。

HOMEBREW_TEMP

使用此路径作为构建包的临时目录。如果系统临时目录和 Homebrew 前缀位于不同的卷上,则可能需要更改此设置,因为当目标尚不存在时,macOS 难以在卷之间移动符号链接。使用 FileVault 或自定义 SSD 配置时,通常会发生此问题。

默认值: macOS:/private/tmp,Linux:/tmp

HOMEBREW_UPDATE_TO_TAG

如果设置,始终使用最新的稳定版本(即使已运行开发人员命令)。

HOMEBREW_UPGRADE_GREEDY

如果设置,将 --greedy 传递给所有 cask 升级命令。

HOMEBREW_VERBOSE

如果设置,在运行命令时始终假定 --verbose

HOMEBREW_VERBOSE_USING_DOTS

如果设置,详细输出将每分钟打印一次 .。这有助于避免由于没有输出而导致长时间运行的 Homebrew 命令被终止。

HOMEBREW_VERIFY_ATTESTATIONS

如果设置,Homebrew 将使用 gh 工具来验证 homebrew-core 中 bottle 的构建出处的加密证明。

SUDO_ASKPASS

如果设置,在调用 sudo(8) 时传递 -A 选项。

all_proxy

通过 Homebrew 下载时,为 curl(1)、git(1) 和 svn(1) 使用此 SOCKS5 代理。

ftp_proxy

通过 Homebrew 下载时,为 curl(1)、git(1) 和 svn(1) 使用此 FTP 代理。

http_proxy

通过 Homebrew 下载时,为 curl(1)、git(1) 和 svn(1) 使用此 HTTP 代理。

https_proxy

通过 Homebrew 下载时,为 curl(1)、git(1) 和 svn(1) 使用此 HTTPS 代理。

no_proxy

通过 Homebrew 下载时,curl(1)、git(1) 和 svn(1) 不使用代理的主机名和域名列表,以逗号分隔。

在代理后面使用 HOMEBREW

设置上面记录的 http_proxyhttps_proxyall_proxyftp_proxy 和/或 no_proxy 环境变量。

例如,要使用未经身份验证的 HTTP 或 SOCKS5 代理

export http_proxy=http://$HOST:$PORT

export all_proxy=socks5://$HOST:$PORT

对于经过身份验证的 HTTP 代理

export http_proxy=http://$USER:$PASSWORD@$HOST:$PORT

另请参阅

Homebrew 文档:https://docs.brew.sh.cn

Homebrew API:https://rubydoc.brew.sh

git(1)、git-log(1)

作者

Homebrew 项目负责人是 Mike McQuaid。

Homebrew 项目领导委员会包括 Colin Dean、Issy Long、Mike McQuaid、Patrick Linnane 和 Vanessa Gennarelli。

Homebrew 技术指导委员会包括 Bo Anderson、FX Coudert、Michka Popoff、Mike McQuaid 和 Rylan Polster。

Homebrew 维护者包括 Alexander Bayandin、Bevan Kay、Bo Anderson、Branch Vincent、Caleb Xu、Carlo Cabrera、David Baumgold、Douglas Eichelberger、Dustin Rodrigues、Eric Knibbe、FX Coudert、Issy Long、Justin Krehel、Markus Reiter、Miccal Matthews、Michael Cho、Michka Popoff、Mike McQuaid、Nanda H Krishna、Patrick Linnane、Razvan Azamfirei、Rui Chen、Ruoyu Zhong、Rylan Polster、Sam Ford、Sean Molenaar、Thierry Moisan、Timothy Sutton 和 William Woodruff。

贡献较大的前任维护者包括 Misty De Méo、Shaun Jackman、Vítor Galvão、Claudia Pellegrino、Seeker、Jan Viljanen、JCount、commitay、Dominyk Tiller、Tim Smith、Baptiste Fontaine、Xu Cheng、Martin Afanasjew、Brett Koonce、Charlie Sharpsteen、Jack Nagel、Adam Vandenberg、Andrew Janke、Alex Dunn、neutric、Tomasz Pajor、Uladzislau Shablinski、Alyssa Ross、ilovezfs、Chongyu Zhu 和 Homebrew 的创建者:Max Howell。

错误

请参阅我们在 GitHub 上的问题

Homebrew/brew

https://github.com/Homebrew/brew/issues

Homebrew/homebrew-core

https://github.com/Homebrew/homebrew-core/issues

Homebrew/homebrew-cask

https://github.com/Homebrew/homebrew-cask/issues

Fork me on GitHub