本次发布的 1.13 更新包含近 20 个新特性。其中,我们针对审阅界面及内容阅读器进行了界面优化和强化,并对测试源选择界面 (oma topics
) 进行了清理。
针对安同 OS,我们引入了更新元数据 (Topic Update Manifest) 规范的支持,可对关键系统更新进行概括化、更为人性化的展示;针对 Debian 系发行版,我们引入了对 multiarch 及 Ubuntu Pro 等专属特性的支持,并针对其依赖树复杂度导致的性能问题进行了针对性优化。
如上所述,oma 1.13 是我们对易用性和性能持续关注和改善的成果——让我们一起了解本次 oma 特性更新带来的各种新功能和修复吧!
测试指南
安同 OS 可通过如下命令获取 oma 1.13.0-rc1 测试版更新:
oma topics --opt-in oma-1.13.0-rc.1
Debian、Ubuntu 及衍生版,Linux Mint、deepin 及 openKylin 用户可通过如下命令获取 oma(目前暂未区分测试源及稳定源,可直接获取 1.13.0-rc1 版更新):
curl -sSf https://repo.aosc.io/get-oma.sh | sudo sh
新特性一览
安同 Update!更新元数据支持
每次更新系统,到底更新了什么呢?看着长长的变更列表,想必您也时常会感到头大且不知所云。为了让用户朋友们更直观地了解到安同 OS 各更新中的关键点,我们设计了更新元数据 (Topic Update Manifest) 规范,对单个或一组系统组件更新的标题、波及范围和注意事项等进行标注,并支持多语言。
oma 方面,我们根据 Windows Update 的启发,根据这一元数据的记录,将更新归纳、概括,并以更为人性化的方式呈现给用户(如上图)。随着更新元数据的覆盖和完善,安同 OS 下 oma 的系统更新界面将更直观易用。
软件包修改新增逻辑排序
当我们使用 oma 操作软件包增减时,可能会波及大量软件包。有时,一次系统更新可能会导致某些软件包不再被需要,进而被 oma 标记为“不再需要的依赖”被清理掉。此时,用户朋友可能会感到迷惑:为什么我明明没有卸载软件包,只是更新个系统而已,会导致软件包被卸载了呢?
为此,我们重新设计了 oma 表格对软件包修改信息的排序:
如图,输入 oma remove scour
时,oma 会首先显示用户指定的 scour
被卸载,而后是依赖已无法满足的 inkscape
被卸载,之后再显示 gdl
、gtkmm
等卸载指定软件包后新出现、将被清理的无用依赖。
版本号变化高亮
受 pikaur 启发,oma 1.13 新增了软件包被升级/降级时的版本号差异高亮,版本变化一目了然。
Debian/Ubuntu 支持改进
oma 1.13 包含许多针对 Debian/Ubuntu 及其衍生版的兼容性及使用体验改进:
- 新增
/etc/apt/auth.conf.d
的支持,Ubuntu 用户现可通过 oma 使用 Ubuntu Pro 软件源 - 新增了
/var/lib/dpkg/arch
文件读取支持,oma 在 Debian/Ubuntu 上可以直接识别通过dpkg --add-architecture
添加的 multiarch 架构了 - 针对 Debian/Ubuntu 及衍生发行版,为
oma upgrade
添加--no-remove
选项,指定该参数后,oma upgrade
行为与apt upgrade
一致
其他新特性
软件源及网络传输支持
- 新增简单
Release
源(现在更常用InRelease
编目)的签名验证支持 - 新增下载超时功能,避免无谓等待
界面更改
- 修改测试源设置界面
oma topics
,默认过滤未开始公开测试的测试源 (topics),使用--all
参数即可全部列出 - 为 oma 的内容阅读器添加了
u
和d
快捷键,对应往上/下滚动(感谢 @ziyao233 的特性请求) - 更改 oma TUI 界面行为,移除升级和自动清理选项,改为使用
Ctrl + u
快捷键升级系统、Ctrl + a
快捷键清理不再需要的软件包 - 新增“在解析依赖关系…”状态提示,在依赖关系解析耗时较长时给用户予提醒
功能及选项更改
- 新增已安装软件包列表
/var/lib/oma/installed
记录支持,以便进行备份恢复 - 更改
--fix-broken
行为,新增--no-fix-dpkg-status
参数,将修复 dpkg 状态的行为控制拆分出来
其他非功能性修改
- 新增针对 Debian/Ubuntu 及衍生版
arm64
及loong64
架构的 oma 安装包 - 新增 Linux Mint 及 Debian Testing/Sid 安装支持(感谢白铭骢的贡献!)
- 新增
oma-console
及oma-contents
文档(感谢 @wxwind 和白铭骢的贡献!) - 翻修源码仓库自述文件 (README)(感谢 @wxwind 和白铭骢的贡献!)
问题修复
- 修复了同时打开
deb-src
和deb
源时,刷新界面 (oma refresh
) 总进度条到 100% 会锁死的问题 - 修复了非终端下仍显示动态进度条的问题
- 修复了指定
--dry-run
参数后仍然需要 root 权限的问题(感谢 @nobootleg 的问题报告) - 修复了
oma pick
中版本号超出终端宽度时界面崩坏的问题 - 修复了指定
--debug
后将 oma 的运行输出重定向至文件时,文件中带有 ANSI 标记的问题