Homebrew 7.0.0 版本带来了显著的性能和安全升级。核心亮点包括更快的安装和更新速度、通过 Landlock(Linux)和增强规则(macOS)实现的更强沙盒机制、一个全新的原生 macOS 图形界面应用 BrewUI,以及内置的漏洞扫描命令 brew vulns。此版本也标志着重要的支持策略调整:正式停止对 macOS 10.15 (Catalina) 的支持,并计划将 Intel Mac 降级为 Tier 3 支持,这意味着未来将不再为 Intel Mac 提供预编译的二进制包。
性能提升
通过在下载、准备和安装阶段实现更高程度的并发处理,新版本显著提升了性能,缩短了用户等待时间。
- 更快的安装与升级:
brew install,brew reinstall和brew upgrade等命令现在可以重叠处理软件包的准备和下载过程,减少了软件包之间的等待。 - 优化的信息收集:
brew config和brew tap-info等命令现在可以并发收集系统信息,从而加快了诊断报告和元数据检查的速度。 - 高效的缓存利用:
brew cleanup避免了重复的缓存扫描,而brew fetch直接从 API 读取下载信息,无需加载完整的包定义,从而加快了启动速度。
安全性增强
此版本包含多项安全修复和新的安装保护措施,旨在限制意外损害并增加安装过程的安全性。
- 内置漏洞扫描: 新增
brew vulns命令,它使用 OSV.dev 的数据来扫描已安装的软件包,检查已知的安全漏洞。用户可以按严重性、是否有可用修复等条件进行筛选。 - 更强的沙盒机制:
- 在 Linux 上,用 Landlock 取代了原有的 Bubblewrap,无需额外依赖或提升权限,解决了之前的安装难题。
- 在 macOS 上,收紧了沙盒策略,限制了对 Mach 服务和 Unix 套接字的连接,并默认阻止沙盒内对用户主目录的读取。
- 安装和 Tap 保护: Tap(第三方仓库)的信任仍然是抵御恶意软件的主要防线。沙盒机制主要用于限制意外损害,但无法使不受信任的软件变得安全。
值得注意的是,应用程序最终仍以用户权限执行,而供应商的
.pkg安装程序在沙盒之外运行,并可能需要sudo权限。
主要命令和配置更新
多个命令的功能得到增强,提供了更清晰的预览和信息。
brew install --dry-run现在可以同时预览 formulae 和 casks 的安装过程。brew info能更清晰地区分无法安装 (⊘) 和未安装 (✘) 的包,并标出不满足的系统或架构要求。brew services现在可以从$HOMEBREW_USER_CONFIG_HOME/services/.env文件中读取持久化配置,使本地服务设置在软件包升级后依然生效。brew deps --brewfile可以检查一个 Brewfile 的依赖关系,便于在安装前审查将要引入的所有软件包。
适用于 macOS 用户
- 原生 macOS 应用 (BrewUI): Homebrew 推出了官方图形界面应用 BrewUI,让软件包管理更加直观。用户可以通过
brew install homebrew-app来安装(需要 macOS Tahoe 26 或更高版本)。 - Intel Mac 支持策略变更:
- Homebrew 将 Intel Mac 的支持级别降至 Tier 3。这意味着现有的二进制包(bottles)仍然可用,但更新的软件包可能需要从源码编译。
- 官方的
.pkg安装程序现在仅支持 Apple Silicon。 - 建议 Intel 用户考虑使用 MacPorts,它可能在 Intel 平台上提供更好的二进制包支持。
- 系统版本支持调整:
- 已移除 对 macOS 10.15 (Catalina) 及更早版本的支持。
- macOS 14 (Sonoma) 也已降级为 Tier 3,不再提供新的二进制包。建议用户升级到 Sequoia 15 或更高版本以获得完整支持。
“如果苹果和微软的 GitHub 这两家全球最大的科技公司都无法继续支持 macOS Intel x86_64,那么遗憾的是,Homebrew 也无法做到。这是一个由志愿者运营的项目,我们的能力是有限的。”
面向维护者和贡献者
- 弃用安装钩子:
post_install(formula) 和*flight(cask) 等 Ruby 代码块已被弃用,推荐迁移到声明式的*_steps。这一改变增强了安全性、验证和 API 交付能力。brew style --fix可以自动转换常见的钩子。 - 新的辅助工具: 引入了多个新的
brew命令和辅助函数,以简化软件包的创建、审计和更新流程,例如brew tap-new可以生成自动更新工作流,brew create能生成语法正确的模板。