BlackHalo logo
Published on

Homebrew 6.0.0 正式发布

Authors
  • Name
    mikemcquaid
    brew.sh
Homebrew 6.0.0 版本更新特性概览
头图来源: 来源页面

安全与信任

Homebrew 6.0.0 引入了 tap 信任机制(Tap Trust),这是本次更新中最关键的安全改进。第三方 tap 可能包含任意非沙盒 Ruby 代码,因此在默认情况下,所有非官方 tap 都需用户显式信任后才能加载和执行其代码。官方 Homebrew 维护的 tap 默认受信任。新增的 brew tap 命令和相关子命令用于管理 tap 的信任状态,brew bundle 也加入了 trusted 选项以标记 Bundle 中的信任项。

此外,该版本修复了三个安全漏洞:

  • POST 下载策略绕过 HTTPS→HTTP 重定向保护(GHSA-7699-qf8c-q47m)。
  • macOS 安装包通过 Git 钩子实现 root 代码执行(GHSA-6689-q779-c33m)。
  • macOS 安装包信任用户控制的 plist,可导致本地用户获得 Homebrew 所有权(GHSA-59v8-x8q4-px5c)。

其他安全改进包括过滤敏感环境变量、将 HOMEBREW_* 环境变量延迟到下载时使用、以及要求 cask 安装时提供校验和(通过 HOMEBREW_CASK_OPTS_REQUIRE_SHA 变量)。

性能与 API

默认启用内部 JSON API,这是对官方 API 的一项重大简化。它将所有元数据合并为单个下载包,使得 brew update 更快且网络请求更少。此前版本中通过 HOMEBREW_USE_INTERNAL_API 变量可选开启,现在该变量已被弃用。

性能方面全面提升:启动速度得到优化,brew leaves 命令提速约 30%,升级过程并行化 bottle tab 的获取,启动时加载的 Ruby 库数量减少。这些改进使得日常操作更加流畅。

Linux 沙盒

Homebrew 6.0.0 使用 Bubblewrap 在 Linux 上实现了沙盒支持,与 macOS 对齐。默认对开发者启用,在编译、测试和 postinstall 阶段均运行在沙盒环境中。Homebrew 还将 macOS 的沙盒逻辑迁移至共享代码,提升了 Linux 沙盒的行为一致性。在 Homebrew/homebrew-core 的 CI 中设置了沙盒环境变量,并加固了沙盒中的安装阶段。

用户默认行为优化

基于 Hombrew 用户调查结果,团队对默认行为进行了多项调整。最显著的是将 ask 模式设为开发者的默认行为:brew installbrew upgrade 现在会显示依赖摘要并要求用户确认后才进行更改。这减少了意外安装或升级的风险。

brew bundle 获得了大量改进:

  • 默认并行安装公式,自动利用多核性能。
  • 新增对 npm、krew 扩展的支持。
  • 清理功能涵盖更多包管理器(npm、cargo、go、uv)。
  • Windows 上支持 winget。
  • 新增 --describe 标志用于 brew bundle add
  • 在清理前提示用户确认。
  • 更安全的 npm install 行为。

macOS 27 支持与 Intel Mac 过渡

Homebrew 6.0.0 加入了初步的 macOS 27(Golden Gate)支持。值得注意的是,macOS 27 将取消 Intel 支持,因此 Homebrew 也公布了 Intel Mac 的支持时间表:2026 年 9 月,macOS Intel x86_64 降至第三层(无 CI 支持,不再构建预编译二进制包);2027 年 9 月,macOS Intel 将被完全弃用,相关代码全部删除。这一过渡提醒用户尽早规划向 Apple Silicon 的迁移。

其他重要特性

  • Cask 增强:支持 pin casks(固定版本),brew missing 现在支持 cask;Linux 上支持 AppImage,并实现了 Linux freedesktop 回收站;cask 升级时共享下载队列,升级完成后可重新打开应用。
  • 系统支持:识别 M5 和 M5 Pro/Max CPU,WSL 增加分析标签,正确识别等价 tap remote 形式。
  • 新命令brew exec(类似 npx,用于运行公式环境下的命令)、brew as-console-user(用于 MDM/root 环境以正确用户身份运行)、brew update <formula> 作为 brew upgrade 的别名。
  • 安装步骤框架:将常见的 postinstall、preflight 等行为以有序的、仅包含文字的 DSL 形式暴露,通过 JSON API 提供。对于仅执行简单文件操作的公式和 cask,不再需要下载和执行完整的 Ruby 文件。Homebrew/core 和 Homebrew/cask 已经采用这一新 DSL。
  • 弃用项HOMEBREW_BUNDLE_NO_SECRETSHOMEBREW_USE_INTERNAL_API 等已弃用,SBOM 支持改为 opt-in(通过 HOMEBREW_SBOM 变量)。

总结

Homebrew 6.0.0 在安全性、性能、可用性三方面均实现了显著进步,同时为未来 macOS 版本的过渡奠定了基础。tap 信任机制和 Linux 沙盒提升了生态系统的整体安全水平;内部 JSON API 和多项性能优化让日常操作更快捷;基于用户调查的行为调整使默认设置更加合理。这是 Homebrew 发展中的一个重要里程碑。

原标题:Show HN: Homebrew 6.0.0。 HN 原始发布时间:2026年6月11日星期四。当前记录为 1038 分、244 条评论。

阅读原文 · 查看 HN 讨论