Rust Coreutils cp 最终因不兼容而破坏了 Ubuntu 镜像构建

Rust 语言重写的 Coreutils 工具集中的 cp 命令因参数处理差异,导致 Ubuntu 镜像构建失败。Ubuntu 团队已将 cp 回退至 GNU 版本,这是 Rust Coreutils 在 Ubuntu 中遇到的又一次兼容性问题。

Rust Coreutils cp 最终因不兼容而破坏了 Ubuntu 镜像构建

一句话看懂:Rust 语言重写的 Coreutils 工具集中的 cp 命令因参数处理差异,导致 Ubuntu 镜像构建失败。Ubuntu 团队已将 cp 回退至 GNU 版本,这是 Rust Coreutils 在 Ubuntu 中遇到的又一次兼容性问题。

事件核心:发生了什么

根据 Phoronix 2026 年 7 月 3 日报道,Rust Coreutils 中的 cp 命令在处理 “-L” 参数时存在差异,导致 Ubuntu 26.04 LTS 发布后的镜像构建(live media ISO 构建)失败。该问题被标记为“关键”(critical)。Ubuntu 团队在最新 coreutils-from 包更新中,将 cp 命令回退到 GNU Coreutils 版本。上游虽已提出修复方案,但截至发稿尚未合并。

此前,Rust Coreutils 在 Ubuntu 25.10 切换后已出现多起兼容性问题,包括部分可执行文件故障、性能不足以及破坏无人值守升级。此次是 Ubuntu 26.04 LTS 后首个重大回退。

为什么重要

Rust Coreutils 项目初衷是通过 Rust 语言的内存安全优势替代 GNU Coreutils,降低系统软件中因 C 语言内存管理错误导致的漏洞风险。然而,逐条命令的兼容性问题持续暴露,说明即便在核心工具中,“用 Rust 重写”并不等同于“无缝替换”。此次 cp 回退直接影响 Ubuntu 镜像生产流程,也再次证明在操作系统基础设施层面,严格的行为兼容性比语言安全性更优先。

对于关注 Rust 系统生态的开发者而言,这提示了 Rust 重写传统 Unix 工具的挑战不仅在于功能实现,还在于数十年积累的边缘行为细节。Ubuntu 的决策也表明,当兼容性冲突影响生产时,安全优势不会成为保留 Rust 版本的充分理由。

对用户/开发者/创作者的影响

对于 Ubuntu 普通用户:镜像构建修复后,用户无直接感知。但频繁的版本回退可能影响长期稳定性信任度,尤其是在 LTS 版本中。

对于开发者:如果使用 Rust Coreutils 的 cp 命令处理批量文件操作,尤其是涉及符号链接保留(-L、-P 等参数)的场景,应关注上游修复进度。当前 Ubuntu 26.04 已回退至 GNU 版本,生产环境建议优先使用系统默认版本而非手动替换。

对于系统管理员和 CI/CD 维护者:监控 livecd-rootfs 等镜像构建脚本中是否使用了 cp -afL 等组合参数。若需强制使用 Rust Coreutils,可参考社区建议采用 cp -RL –preserve=all 替代,但需要自行测试全面兼容性。

值得关注的后续

1. 上游修复合并时间:Rust Coreutils 的 cp 修复能否在 Ubuntu 下个更新中发布,将影响 Ubuntu 26.10 是否继续使用 Rust 版本。

2. 其他命令是否会暴露类似问题:目前仅 cp 被回退,但其他 Rust Coreutils 命令(如 mv、rm、install)是否也存在未发现的边缘情况,需持续观察 Launchpad 和 GitHub 上的 bug 报告。

3. Canonical 对 Rust Coreutils 的长期策略:此次回退是临时措施还是可能引发“选择性采用”策略——仅在内存安全敏感命令(如 id、ls)中使用 Rust 版本,核心复制等操作保留 GNU 实现。

来源:Hacker News · 24h最热

celebrityanime
celebrityanime
文章: 11341

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注