历经一个月的设计、开发与测试,oma 1.12.0 终于与大家见面了!
本次更新包含超过 10 个新特性,让 oma 更好用、更符合安同 OS 用户的需要:其中,我们大幅度增强了软件包与系统特性保护功能、为操作内容阅读器新增了搜索功能、翻修了软件源镜像管理器的界面,还对无用软件包清理、非交互模式界面和诸多 oma 子命令进行了增强和优化。
让我们一起了解本次 oma 特性更新带来的各种新功能和修复吧!
新特性
关键系统特性与必备包保护功能
长久以来,Linux 系统中桌面等关键组件被“卸穿”的事故频频发生,也成为影响用户安全感的主要因素之一。为了解决这一问题,我们设计了《系统特性标记规范》并对一部分系统组件进行了标记 (X-AOSC-Feature
),让用户更清晰地了解系统软件包与具体系统特性的关系、区分应用程序和系统组件。
我们在 oma 1.12 中新增了读取这一数据的支持,在探测到用户操作导致关键系统组件被卸载时将默认中止操作,并提示用户操作可能影响到的具体系统特性:
当然,如果您确实需要对这些系统组件进行增减、自定义操作,您可以关闭 oma 的保护机制(protect_essentials
设置为 false
)并重试上述操作:
此外,我们还更新了关闭保护机制后删除必备 (Essential) 组件时的警告与确认界面:
内容阅读器:搜索功能
先前,我们将 oma 的阅读器 (pager) 功能改为内部实现,但此前 less
提供的搜索功能便丢失了。为解决这一问题,oma 1.12 为内容阅读器 (pager) 新增了字符搜索功能(感谢 @wxwind 的贡献!):
软件包清理提示
在更新系统、卸载软件的过程中,难免会产生一系列不再需要的软件包。实际上,oma 如同 APT 一般,都有通过 autoremove
删除多余软件包的功能,但这一信息一直对用户的可见度都不高。
因此,oma 1.12 新增了在 oma install/remove/upgrade ...
操作完成后的不必要软件包的卸载提示:
软件源镜像管理器
作为一个先前鲜有用户使用的功能,mirrormgr 软件源镜像管理器一直是作为外部插件接入 oma 供用户们使用的,界面也少有打磨。
作为 oma 1.12 开发目标的一部分,我们将这一功能直接集成到了 oma 中,以期增强体验一致性(本地化、补全等特性均直接复用 oma 的开发设施)。此外,我们还为 oma mirrors
引入了两个新功能:
oma mirrors
交互界面会将已启用的源放到最上面,更方便用户了解当前配置:
我们还对软件源测速功能进行了翻修,并清理测试与结果界面:
在测速后,还会对每个软件源镜像的测速结果进行排序,呈现给用户作为参考:
非交互模式:下载速率显示
在 oma 逐渐在社区各类自动化设施中取代 APT 后,oma 非交互模式的一些体验问题也逐步显现了出来。其中最突出的便是网速较慢时,oma 下载过程中不显示瞬时下载速率,让不少社区维护者都以为误以为 oma “卡死”了。
为解决这一问题,我们为 oma 的非交互模式下的下载界面中新增了下载进度显示(每隔三秒钟打印一次传输进度):
其他特性
oma install/remove/upgrade
命令新增--force-unsafe-io
参数:指定该参数时将禁用dpkg
文件操作时的同步、备份等保障措施;该参数旨在大幅度提高某些使用场景下软件包安装的速度,节省如 Ciel 等容器环境下重建环境的耗时,但在意外断电、系统崩溃等情况下将无法保障软件包数据写入完整,请谨慎启用oma list
命令新增--autoremovable
参数,可列出系统中可清理的软件包oma show/depends/rdepends/list/search
命令新增--json
参数,可输出程序可读的解析结果(JSON 格式)- 新增全局选项
--apt-options (-o)
,使用该选项后传入任意 APT 选项即可修改 oma 的包管理行为 - 为“软件包提示(您可能在找)”界面添加等待状态提示,改善 Ubuntu/Debian 及衍生发行版中等待时间较长时界面行为不清晰的问题
问题修复
- 修复 DEB822 软件源配置格式文件中
Signed-By
项未正确识别的问题,Ubuntu 下 PPA 源无法使用的问题也随之得到解决(感谢 @tomyushiyan 的问题报告!) - 修复 APT 配置文件指定类型源为不刷新(
DefaultEnabled
设置为false
)时,oma 仍执行刷新的问题 - 修复在
sudo
环境下 SSH 环境检测失效,导致 oma 意外输出 OSC11 字符的问题 - 修复 APT 软件源元数据文件名未正确将字符
-
转义为%40
的问题 - 修复在
tmux/screen
等多人协作环境中,oma 操作时意外输出 OSC11 字符的问题 - 修复在 TUI 界面中使用空格 (Space) 键选中已安装的包后取消选中时,oma 无故崩溃的问题(感谢 QQ 群好友 @寻觅 的问题报告)
- 修复
oma undo/history
界面中因为终端高度不够显示所选项缺失的问题(感谢 @GGN_2015 的问题报告)
测试指引
安同 OS 可通过如下命令获取 oma 1.12.0-rc4 测试版更新:
oma topics --opt-in oma-1.12.0-rc.4
Debian、Ubuntu、deepin 及 openKylin 用户可通过如下命令获取 oma(目前暂未区分测试源及稳定源,可直接获取 1.12.0-rc4 版更新):
curl -sSf https://repo.aosc.io/get-oma.sh | sudo sh