
更快、更好、更兼容!
如同上一版本一般,oma 1.24 是一次改良性更新:界面和功能更新诚然不多,但对 APT 兼容性及依赖解析,以及日志库性能及杂项功能作了改进。
让我们来一起详细了解本版 oma 的新特性和修复吧~
测试指南
安同 OS 可通过如下命令获取 oma 1.24 测试版更新:
oma topics --opt-in oma-preview
Debian、Ubuntu 及衍生版,Linux Mint、deepin 及 openKylin 用户可通过如下命令获取 oma(目前暂未区分测试源及稳定源,可直接获取 1.24 版更新):
curl -sSf https://repo.aosc.io/get-oma.sh | sudo sh
如果您在测试 oma 的过程中遇到问题或有任何建议,欢迎您来我社各聊天群组与我们联系反馈。
APT 兼容性提升:元数据及密码学算法策略
APT 的行为…… 可真是个无底洞!从 URL 解析、磁盘空间占用算法,再到元数据下载规则和密码学算法策略,都需要我们仔细研读其文档(甚至源码)。但是,原理只会通过研究愈发明晰——oma 1.24 也在这一方面有所成就。
首先是元数据获取:我们曾经错误地假设 APT 软件源使用 Release/InRelease(软件源主编目)或 Packages(软件包主编目)作为主要元数据决定了要下载的文件列表,且不可跳过任何找不到或无法下载的文件。实际上,APT 对元数据定义了 Optional(是否可选,即是否允许下载失败)及 Fallback-Of(回落策略,如找不到某文件则寻找另一文件名)属性。在 oma 1.23 维护周期中,我们根据用户反馈的无法正常刷新 CrowdSec 软件源 的问题报告,研究并实现了上述两个属性,实现了兼容性改善。诚然,这实际上是上游软件源服务配置导致的,但在 oma 诞生的两年以来,这样的问题的确也不少见。

APT 的密码学算法策略定义了各类算法、签名格式的弃用计划
接下来是密码学算法策略:近期的 APT 版本开始引入了基于 Sequoia 的密钥策略配置支持,定义了各类元数据签名时所使用的算法的过期时间。从几个版本前,oma 便已支持 /etc/crypto-policies/back-ends/apt-sequoia.config 路径下存放的密码学策略配置,但没有正确读取部分发行版在 /usr/share/apt/default-sequoia.config 放置的策略模板。oma 1.24 修复了这一行为,并正确地将前者作为用户配置处理。
但是,使用 APT 2.x 的发行版(如 Ubuntu 24.04 LTS)用户可能会发现部分 PPA 源不可用。这是因为 APT 3.0 默认配置中定义 SHA-1 算法自 2026 年 2 月 1 日起过期),而许多 PPA 源仍在使用 SHA-1 算法导致的。如果您在使用 oma 过程中遇到了类似问题,请复制 /usr/share/apt/default-sequoia.config 到 /etc/crypto-policies/back-ends/apt-sequoia.config,并编辑如下内容以修改 SHA-1 算法的弃用期限:
[hash_algorithms]
sha1.second_preimage_resistance = 2027-01-01 # 延长 SHA-1 过期时间至明年 1 月 1 日
而后,PPA 源即可正常使用,但请注意,SHA-1 算法已被弃用且不安全,我们建议您谨慎配置该项。
作出回答:APT 3.0 依赖解析器集成

APT 3.0 依赖解析器可更清晰地诊断和报告依赖问题
除界面优化外,APT 3.0 引入的另一大特性便是其全新的解析器 (Solver3)。对于最终用户来说,Solver3 除了最小化依赖树(虽然这在依赖树相对简单的安同 OS 上效果可能不明显)、更好地保护用户手动安装的软件包外,便是提供了更清晰的依赖解析错误提示。
经过 oma 1.24 开发周期的测试,我们认为 Solver3 已基本成熟,因此也在这一版本正式升级了全新的依赖解析器。
日志加速:spdlog-rs 重构

spdlog-rs 在 oma 使用的异步日志场景下可提供比原实现 (tracing) 显著更高的吞吐性能
oma 1.24 周期,经过 @SpriteOvO 及 @NotEvenANeko 的贡献,oma 的日志系统经过重构,已从 tracing 切换至性能更好的 spdlog-rs。
spdlog-rs 的性能提升有待各位用户朋友的使用反馈,根据 spdlog-rs 项目提供的评测数据和 @SpriteOvO 在 AOSCC 2025 的介绍,相信该项目可以对日志系统更为强大的 Rust 项目提供更好的性能。欢迎各位开发者和用户试用,也感谢上述二位的贡献。
其他特性和功能修缮
- 正确处理 APT 本地软件包缓存锁,避免 APT 与 oma 下载重入
- 修改任务完成时的“响铃 (bell)”提示行为,oma 目前仅会在预期需要较长时间完成的命令后响铃
- 添加
--no-config选项,允许让 oma 忽略默认系统配置 (/etc/oma.toml) 运行