如何判断自己的 macOS 或 Linux 环境是否达到 Homebrew Tier 1 支持级别?
【免费下载链接】brew🍺 The Package Manager for Everywhere项目地址: https://gitcode.com/GitHub_Trending/br/brew
如果你已经用 Homebrew 安装了软件,想确认当前这台机器是否属于 Homebrew 官方完全支持的 Tier 1 配置——也就是能享受完整 CI 覆盖、不出现系统配置类警告、问题会被维护者优先处理的级别——可以按本文的路径完成判断:先跑诊断命令看自动结论,再对照官方 Tier 1 清单核对诊断命令覆盖不到的物理条件。本文内容基于 Support Tiers 文档和brew doctor的实现(doctor 命令、支持级别消息)。
Tier 1 到底意味着什么
根据 Support-Tiers 文档,Tier 1 配置被视为完全支持,你可以预期:
- 使用 Homebrew 的体验最可靠;
- 可复现的 bug 会被维护者调查并尽可能修复;
- 运行时不出现与系统配置相关的警告输出;
- 测试和 bottle 构建享有完整 CI 覆盖;
- 在 Tier 1 系统上失败的 pull request 会被阻断。
需要留意:Tier 级别描述的是 Homebrew 对宿主机系统本身的支持,并不保证第三方 formula 或 cask 永远能运行。
判断步骤一:运行 brew update 和 brew doctor
按 Troubleshooting 文档 给出的诊断流程,先更新 Homebrew 本体,再运行诊断:
brew update brew doctorbrew update连续执行两次是文档建议的做法:第二次执行可以确保第一次更新没有让后续命令停留在旧版本上。brew doctor会检查系统潜在问题,发现任何潜在问题时以非零状态退出;如果没有发现问题,最后输出:
Your system is ready to brew.出现这行输出(且退出码为 0)说明没有发现任何配置问题,此时诊断内部按 Tier 1 处理,不打印任何级别提示。
如果brew doctor打印了警告,注意输出的最后一行。实现逻辑是:命令收集所有检查发现的tier值,取其中最高的一档;当最高档不是 1 时,会打印这样的收尾消息:
This is a Tier 2 configuration: <支持级别文档链接> You can report issues with Tier 2 configurations to Homebrew/* repositories! <issue 跟踪地址> Read the above document before opening any issues or PRs.其中Tier 2会替换为实际级别;级别为 1 时不打印该消息,级别为 unsupported 时打印This is a Unsupported configuration:和Do not report any issues。所以判断规则很直接:
- 没有警告、只看到
Your system is ready to brew.→ 诊断侧不把你降到 Tier 1 以下; - 看到
This is a Tier 2 configuration:或This is a Tier 3 configuration:→ 当前是 Tier 2 或 Tier 3,不是 Tier 1; - 看到
This is a Unsupported configuration:→ 完全不受支持。
可选分支:如果你需要把结果交给脚本处理,brew doctor支持--json参数(源码中标记为隐藏开关),输出形如{"tier": …, "findings": […]}的 JSON,每条 finding 都带tier字段,见 doctor 命令实现。
判断步骤二:对照 Tier 1 条件清单
诊断命令覆盖的是它能检测到的软件环境,还有一些物理条件(是否虚拟机、是否装在内置存储、发行版支持窗口)需要你对照 Support-Tiers 文档 手动确认。Tier 1 要求全部条件同时满足。
macOS 的 Tier 1 条件
- 官方 Apple Silicon 硬件(不是虚拟机);
- 运行该硬件受 Apple 支持的、且包含在 Homebrew CI 覆盖范围内的 macOS 版本的最新补丁版(通常是最新稳定版/预发布版及其前两个版本);
- 安装在默认前缀
/opt/homebrew; - 不从源码构建官方软件包(即使用 bottle);
- 安装在 Mac 内置存储上(不是外置或可移动磁盘);
- 有
sudo权限可用; - Xcode Command Line Tools 已安装且为最新。
其中前缀条件可用下面的命令核对,确认前缀是/opt/homebrew:
brew --prefixCLT 是否最新由brew doctor自动检查(check_clt_up_to_date),不是 Tier 1 条件里唯一会被诊断覆盖的一项,但仍建议逐项核对清单。
Linux 的 Tier 1 条件
- 运行在标准支持期内的 Ubuntu,或 Homebrew 提供的 Docker 镜像;
- 系统
glibc版本 ≥ 2.39; - Linux 内核版本 ≥ 3.2;
- 安装在默认前缀
/home/linuxbrew/.linuxbrew(Linux 安装文档说明安装脚本默认使用该前缀,因为装在其他位置例如个人主目录会导致大部分 bottle 不可用); - 受支持的架构:ARM64/AArch64,或带 SSSE3 支持的 Intel x86_64;
- 不从源码构建官方软件包(即使用 bottle);
- 有
sudo权限可用。
glibc、内核版本和架构同样由brew doctor自动检查,前缀可用brew --prefix核对应为/home/linuxbrew/.linuxbrew。
常见警告与级别的对应关系
下面是brew doctor各检查在源码中实际标记的级别,用来帮你解读看到的警告(macOS 检查见 mac 诊断实现,Linux 检查见 Linux 诊断实现):
| brew doctor 警告 | 对应级别 |
|---|---|
Your Xcode (…) is outdated. | Tier 2 |
A newer Command Line Tools release is available. | Tier 2 |
macOS 旧版本(old version.)或 Intel x86_64 平台 | Tier 3 |
| macOS 预发布版本 | Tier 2 |
Your Homebrew installation is managed by Nix. | Tier 3 |
Linux CPU 架构不受支持(We only support x86_64 or ARM64/AArch64…) | Tier 2 |
系统glibc低于最低支持版本(We only support glibc … or later.) | Unsupported |
系统glibc过旧、将自动安装更新版本(We will need to automatically install a newer version.) | Tier 2 |
Linux 内核过旧(Your Linux kernel (…) is too old.) | Tier 3 |
这与 Support-Tiers 文档 中 Tier 2/3 的列举一致:例如 Intel x86_64 运行 macOS 属于 Tier 3(文档同时给出了时间表:按 Apple 发布周期,Intel x86_64 的 macOS 从 Catalina 10.15 到 Tahoe 26 均列为 Tier 3,Mojave 10.14 及更早不受支持,且 2027 年 9 月后 Intel 系统的所有 macOS 版本都将不受支持);glibc在 2.13 到 2.38 之间的 Linux 系统属于 Tier 2,Homebrew 会自动安装自己的glibcformula。
判断规则与限制
- Tier 1 是全量条件:任何一条 macOS/Linux 条件不满足就不构成 Tier 1,最终级别取所有发现中最高的一档。诊断的收尾消息给出的
Tier N就是这个最高档。 - 警告不等于降级:有些发现的默认级别是 1,它们会被打印为警告但不会触发
This is a Tier N configuration:收尾行。判断是否达到 Tier 1,看收尾行 + 手动清单两项结合。 - Nix 管理的 Homebrew 安装(如 nix-darwin、nix-homebrew)属于 Tier 3,
brew doctor会明确提示,且相关 issue 应报给 Nix 上游项目。 - 文档同时提醒:这些警告主要是帮助维护者调试用的,如果你的使用一切正常,可以不处理、不必提交 issue。
结论验证
完成判断后,两条标准同时满足才算确认你的环境是 Tier 1:
brew doctor无警告输出,结尾为Your system is ready to brew.,退出码为 0(对应 Tier 1 期望的"不出现系统配置相关警告");- 你对照上面的 macOS 或 Linux 条件清单逐项确认全部成立(虚拟机、内置存储、发行版支持窗口等诊断命令无法替你核对的项)。
若诊断给出了具体警告,每条警告都会附带You can solve this by running:形式的修复命令(例如更新 git、调整目录属主、设置HOMEBREW_TEMP等)。按提示修复后重新运行brew doctor,直到收尾的级别提示消失、输出Your system is ready to brew.,即完成从当前级别回到 Tier 1 的验证。
【免费下载链接】brew🍺 The Package Manager for Everywhere项目地址: https://gitcode.com/GitHub_Trending/br/brew
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考