今天,我宣布发布 Homebrew 4.1.0。自 4.0.0 以来最重要的变化是显著改进了 Homebrew 4.0.0 的新 JSON API 的安全性/可靠性/性能/可用性,完成了分析从美国 Google Analytics 迁移到欧盟 InfluxDB 的工作,并为稍后的 macOS Sonoma (14) 支持奠定了基础。
自 4.0.0 以来,主要的变化和弃用
brew
下载的公式/桶 API 使用带客户端签名验证的签名 API 端点。- 我们对 4.0.0 的新功能进行了许多改进,即使用从 formulae.brew.sh 下载的 JSON 文件来安装软件包,而不是本地 homebrew/core 和 homebrew/cask 分支。
- 如果您之前设置了
HOMEBREW_NO_AUTO_UPDATE
、HOMEBREW_NO_INSTALL_FROM_API
或HOMEBREW_AUTO_UPDATE_SECS
以解决错误或问题:请考虑取消设置这些设置并根据新行为调整值。在某些情况下,您可能会看到一条一次性消息,提示您执行此操作。
- 如果您之前设置了
brew doctor
会在 Homebrew/homebrew-core 或 Homebrew/homebrew-cask 似乎被不必要地分支时发出警告,以便您可以brew untap
它们以节省时间和磁盘空间。- formulae.brew.sh 为 Homebrew 开发人员配置、操作系统/架构/CI、Homebrew 前缀和 Homebrew 版本提供了 新的分析。这是基于已经收集的现有数据。
- 我们在 2023-06-16 销毁了(并且没有迁移/备份)所有 Homebrew 的 Google Analytics 数据,并且 所有 Google Analytics 代码均已删除。
- Homebrew 的分析仅发送到我们托管在欧盟的 InfluxDB 实例。
- 如果您之前设置了
HOMEBREW_NO_ANALYTICS
,因为您不喜欢 Google Analytics 和/或将数据发送到美国:请考虑取消此设置,允许将分析数据发送到我们新的 InfluxDB 主机。同样,在某些情况下,您可能会看到一条一次性消息,提示您执行此操作。
- 如果您之前设置了
- Homebrew 的分析文档 已更新为新的 InfluxDB,后 Google Analytics 现实。
- 设置
HOMEBREW_NO_ENV_FILTERING
不再失败,但会静默地成为无操作。 - Homebrew 已弃用的 Ubuntu 16.04 Docker 映像不再构建或更新。
- Homebrew/homebrew-cask-drivers 已弃用,活动 cask 已移至 Homebrew/homebrew-cask。
brew rbenv-sync
、brew nodenv-sync
和brew pyenv-sync
命令将自动将 Homebrew 安装的 Ruby、NodeJS 和 Python 版本分别与rbenv
、nodenv
和pyenv
同步,以避免需要从源代码构建这些版本。- Homebrew 已为以后的 macOS Sonoma (14) 支持奠定了基础。
- 各种 改进 加速了所有 Ruby
brew
命令性能。 brew fetch
ing bottle 的速度显著提高。brew install
无post_install
的速度显著提高。- 其他各种次要版本弃用和禁用.
自 4.0.0 以来我想重点介绍的其他更改如下
brew
命令将仅从 API 自动更新 4.0.0 之前从 Git 自动更新的命令。brew update
在从 API 安装时报告新的/已删除的公式/cask。brew update
将自动更新 Homebrew/homebrew-core 和 Homebrew/homebrew-cask 本地 tap,适用于已运行开发者命令的用户。brew install
构建失败仅推荐打开问题,而不是拉取请求。brew install
将使用缓存的 bottle,如果检查 bottle 是否最新的请求失败。brew install
设置OPENSSL_NO_VENDOR
以使用 Homebrew 相关的openssl*
公式,而不是openssl
crate 中提供的 OpenSSL。brew install --skip-post-install
将在安装公式时跳过安装后步骤。brew search
不再远程搜索,而是使用 Homebrew 的新 JSON API。brew cleanup --quiet
省略输出一些警告。brew deps --missing
提供与brew deps --installed
相反的输出brew fetch
,brew --cache
,brew audit
和brew readall
具有--os
和--arch
标志,用于模拟不同的操作系统和 CPU 架构。brew shellenv
接受一个 shell 名称参数,用于自动检测不可靠的情况。brew
命令对运行过 Homebrew 开发者命令的用户自动更新的频率较低。brew audit
验证.pkg
安装程序的正确签名。brew bump
和brew bump-formula-pr
将更新本地 Homebrew/homebrew-core tap(如果存在),brew bump
和brew bump-cask-pr
将对 Homebrew/homebrew-cask 执行相同操作。HOMEBREW_NO_INSTALL_FROM_API
会自动为需要它的命令设置。- tap 中的
cask_renames.json
文件允许重命名 cask。 - 默认的 Linux 安装位置 (
/home/linuxbrew/.linuxbrew
) 在 Fedora Silverblue 和其他/home
在其他地方创建符号链接的配置中按预期工作。 - Homebrew 使用(并优先考虑)
gh
CLI 存储的 GitHub 令牌(如果可用)。 - Homebrew 避免使用 macOS
texinfo
- GitHub Packages 瓶清单包含瓶的大小.
- Homebrew 将在安装时将
RUSTFLAGS
设置为适当的目标 CPU。 - Homebrew 可以使用 GCC 13 构建。
- Homebrew 的分析更好地捕获了基于非 Debian 的发行版版本。
- 初步支持从子目录加载公式/桶(以后出于性能原因“分片”Homebrew/homebrew-core 和 Homebrew/homebrew-cask 公式/桶目录)。
- Homebrew 更明确地表示不支持从源代码构建。
- Homebrew 的 Ruby API 文档中已修复各种显示问题,网址为 rubydoc.brew.sh。
最后
- Homebrew 通过 GitHub Sponsors 接受捐赠,仍通过 Patreon 接受捐赠。如果您有能力,请考虑捐赠。如果您不想使用 GitHub Sponsors 或 Patreon(我们首选的捐赠方式),请查看我们 README 中的其他捐赠方式。
感谢我们所有勤奋的维护人员、贡献者、赞助商和支持者,让我们走到今天这一步。