返回 2026-06-21
🛠 工具 / 开源

本周包管理资讯:2026年6月20日This Week in Package Management: 20 June 2026

nesbitt.io·2026-06-20

本周包管理领域的最新动态汇总,涵盖了各大包管理器的版本发布、安全公告以及相关技术文章。内容聚焦于生态系统内的关键更新与安全漏洞修复建议。读者可以通过此资讯快速掌握当前包管理行业的核心发展趋势。

Andrew Nesbitt

本周报第五期,内容汇编自包管理器 OPML 订阅源集合,以及我在 Mastodon 上发布或转发的动态。

版本发布

sbt 2.0.0 将构建定义和插件迁移至 Scala 3,要求使用 JDK 17,并使用兼容 Bazel 的本地/远程缓存替换了原有的缓存层,供重写后的编译和测试任务使用。项目矩阵插件现已内置,同时引入了 native-image 客户端以缩短启动时间。sbt 1.12.12 也同步发布,用于 1.x 系列。

pnpm 11.7 新增了 frozenStore 设置,以只读方式打开 store 的 SQLite 索引,使得 pnpm install 能够在 Nix store、只读绑定挂载或 OCI 层上运行,而不会尝试写入 WAL 附属文件。该版本还添加了 --batch 标志以通过单次请求发布整个工作区,支持按 scope 设置身份验证令牌,并提供了将安装解析委托给 pacquet 的选项。

v10 系列的 pnpm 10.34.4 修复了两个路径遍历问题。pnpm-workspace.yaml 中带有路径遍历特征的 configDependencies 名称或版本可能会将文件写入 node_modules/.pnpm-config 和 store 之外(GHSA-qrv3-253h-g69c),而在 nodeLinker: hoisted 配置下,被恶意构造的 lockfile 别名可能会写入安装根目录之外的位置(GHSA-fr4h-3cph-29xv,此问题在 11.7.0 中也已修复)。

npm 12.0.0-pre.1 是首个启用 v12 默认设置的预发布版本:除非在 allowScripts 中列出,否则将阻止依赖项安装脚本,allow-git 和 allow-remote 默认均设为 none,且未知的配置和 CLI 标志将直接报错而非仅发出警告。此版本的新特性包括用于修补原生依赖的 npm patch 子命令,以及用于从根目录修复依赖清单的 packageExtensions 字段。

Yarn 4.17.0 新增了包映射(package map)生成功能,并允许按 npm scope 而非全局设置 npmMinimalAgeGate。

Dependabot Core 0.382.0 支持 npm_registry 凭据上的 scope 属性,并修复了 npm registry 凭据被发送到同一主机同级路径的泄露问题。

mise 2026.6.11 将 Alpine apk 添加为与 apt、dnf、pacman 和 brew 并列的引导包管理器,并防止默认的 Windows .exe shims 泄漏到 WSL 会话中。

Stack 3.11.1 将 64 位 Windows 上的默认 MSYS2 环境从 MINGW64 更改为 CLANG64,这是跟进 MSYS2 项目弃用前者的决定。

conda 26.5.3 不再缓存分片 repodata 的未找到响应,此前该缓存机制会导致后续运行中的仅限分片(shards-only)通道失效。

Go 模块代理 Athens 0.18.0 为其 singleflight stash 增加了 Redis 集群模式支持。

Go 1.27rc1 在 go 命令可获取模块的版本控制系统中移除了 Bazaar,并且对于 go 1.27 或更高版本的模块,go mod tidy 现在会将重复的 require 块合并为一个直接依赖块和一个间接依赖块。

pipx 1.14.1 能够在中断重新安装后恢复软件包,并修复了 inject --force 的重新安装行为。

uv 0.11.22 为 uv audit 增加了 SARIF 输出,为 uv check 和 uv metadata 添加了 --script 标志,并允许在 uv.toml 和 pyproject.toml 中设置预览功能。一天后发布的 0.11.23 版本则回退了之前的两个修复,因为其中一个修复导致了 pre-commit-uv 出现故障。

Docker Engine 29.6.0 新增了 GET /images/{name}/attestations 端点,该端点会返回附加到镜像上的 in-toto 证明声明(例如 SLSA 来源和 SPDX SBOMs),并支持平台选择和谓词类型过滤。

yay v13 会显示每个 PKGBUILD 距离上次修改已过去的时间,从而使最近更改过的 AUR 软件包在审查时更加醒目,此外还添加了 init.lua 中的 Lua 钩子,用于编写脚本进行包检查和过滤。

同时发布的还有:Homebrew 6.0.2、Helm 4.2.2、Helm 3.21.2、Gradle 9.6.0、snapd 2.76、Harbor 2.15.2-rc1 和 Renovate 43.233.3。

文章

《rv:计划与进展》(André Arko)报道了基于 Rust 的 Ruby 工具链推行一年来的情况。它现在可以安装 Ruby,使用 YJIT 进行构建,通过 clean-install 和 rvx 管理 gem,并且能在 Windows 上运行。下一步是实现完整的依赖解析,评估 Gemfile 并以类似 uv 的速度写入 lockfile。

《包管理器需要全局钩子》(Nemo)一文指出,每个包管理器都应该暴露 pre-clone 和 pre-build 钩子,以便用户能够在本地安装路径中接入依赖冷却机制和威胁情报源扫描,而无需使用代理注册表或 shell 包装器。

《pkgcli 介绍》(Matthias Klumpp)是 PackageKit 的全新命令行前端,旨在取代 pkcon,它提供了更友好的命令名称、彩色输出以及用于脚本编排的 JSON 模式。

《为什么 stdx 不在 crates.io 上》(Sylvain Kerkour):作者仅通过 git 分发他包含 64 个 crate 的 Rust 扩展标准库,理由是中央注册表缺乏命名空间且增加了攻击面:发布令牌、无需与仓库匹配的源码、typosquatting(域名抢注)以及依赖混淆。他认为 Rust 应该效仿 Go 的模式,将包管理器直接指向源代码仓库,并由校验和数据库及可选的缓存代理提供支持。

《npm 在做什么来保护 JavaScript 生态系统,这足够吗?》(Mary Branscombe,The Stack)审视了 npm 为应对供应链攻击而在注册表端实施的变更,以及还有哪些工作需要开发者自己完成。

《curl 的极乐之夏》(Daniel Stenberg)宣布,curl 项目在 2026 年 7 月期间将不接受或处理漏洞报告,让维护者从无休止的漏洞披露流水线中休息一个月。libexpat 也将采取同样的做法,持续到 8 月 1 日。

《漏洞报告已死,提示词万岁!》(Mikaël Barbero)主张,AI 辅助的漏洞报告应以提示词、模型版本、commit hash、工具访问权限和验证状态为先导,并将生成的文本描述视为辅助材料。

《2026 年 Composer 与 Packagist 供应链安全》(Nils Adermann)是 PHPVerse 演讲的幻灯片,涵盖了 Packagist 博客在过去几周一直在撰写的同一系列变更。

《Homebrew 收紧 tap 安全性并开始开发其界面》(Help Net Security)采访了 Mike McQuaid,探讨了 6.0.0 版本的发布以及 tap 信任机制。

《关于治理的思考》(Dawn Foster)汇集了她近期关于开源项目治理及其与公共部门治理交汇点的演讲。

《开源是一场零工》(Cristovao Verstraeten,LinkedIn)将维护开源比作巡演音乐人的生活,主要是用曝光度而不是金钱来支付报酬。

其他资讯

《软件暗物质:通过观察未知文件来导航 SBOM 集成》(Reddypalle 等人,arXiv)指出了 SBOM 从包管理器元数据中列出的内容,与实际包含在制品(artifact)中但从未出现在清单中的安全相关文件之间存在的差距。

ClickPy 2026 年 5 月的报告显示,PyPI 本月的下载量达到 1638 亿次,自 3 月以来增长了约 20%。

actions/checkout v7 现在默认拒绝在 pull_request_target 工作流中检出 fork 拉取请求的代码,从而阻断了在 CI 中使用写入令牌(write token)运行不受信任代码的常见途径。

GitHub 仓库现在可以限制没有写权限的用户同时打开的拉取请求数量,旨在应对随意性的“路过式”贡献量。

Weston Steimel 发起了一项关于提升 PyPA 公告数据库数据质量的讨论,并正在征求意见。

gem-guardian 是一款 RubyGems 校验和验证工具,目前已扩展支持 lockfile 校验和、来源报告,以及针对私有仓库的发布者提供的校验和验证功能。

继上周发生 AUR 接管事件之后,Morten Linderud 指出,如果有人维护着十个或更多自己依赖的 AUR 软件包,应考虑转而成为官方的 Arch 软件包维护者。

请将下周的链接发送至 @[email protected]。

需要完整排版与评论请前往来源站点阅读。