小熊猫包管理器 (oma) 用户指南
小熊猫包管理器(英文名 oma)是为安同 OS 编写的包管理器,基于 libapt-pkg 构建,目标是取代 APT。oma 将 APT 的各种子功能集于一身,并且拥有许多新特性,如更清晰的界面、多线程下载、镜像选择及回滚功能等。因此,oma 的使用体验相对于 APT 要好很多。
oma 是安同 OS 的默认包管理器,因此日常系统更新、软件管理等操作均需要通过 oma 进行。
oma 的功能
oma 是包管理器,因此具备传统包管理器的功能,如安装、更新和卸载软件包。除此之外,oma 还有一些针对安同 OS 的特色功能。oma 的功能如下:
- 搜索、安装和卸载软件包
- 更新软件包及系统
- 列出软件包的文件
- 根据文件搜索软件包
- 查看软件包的反向依赖关系
- 管理安同 OS 的测试源 (Topic)
- 切换软件仓库的镜像源
- 回滚 oma 历史操作
- 终端图形 (TUI) 界面
运行 oma
oma 属于系统管理工具,因此任何软件包、测试源和镜像相关的操作均需要 root 权限。不过,oma 集成了提权框架 (PolicyKit),因此在桌面环境下运行 oma 的命令无需使用 sudo 工具获得 root 权限。

oma 通过 PolicyKit 询问当前用户的密码,来获得 root 权限
注意
如果没有使用桌面环境的终端模拟器,则需要通过 sudo 来获得 root 权限:
sudo oma
oma 的操作模式
为了适应不同习惯的用户,oma 提供两种操作模式:传统模式和 TUI 模式。两种操作模式的特征如下:
- 传统模式: 类似于 APT 的使用逻辑。安装、更新、卸载等操作都通过在 Shell 中执行命令来完成。
- TUI 模式:在终端中给予用户类似图形界面的使用体验,因此对于不熟悉终端的人比较友好。安装、更新和卸载等操作相对于传统的执行命令模式,使用更加方便。

传统模式,类似 APT 的操作逻辑;图中安装了 KDE 的视频播放器 Haruna

TUI 模式,提供了类似桌面程序的界面;图中选中了 KDE 的图像管理器 DigiKam 准备安装
和 APT 一样,oma 是一个命令行程序。因此使用 oma 更新系统、安装安同 OS 软件仓库中的软件前,请先打开终端。
提示
在安同 OS 桌面版环境下,可以按 Ctrl + Alt + T 快捷键打开 Konsole 终端。
传统模式操作指南
本节内容讲述如何使用 oma 的传统操作模式完成软件管理、系统维护等操作。
Important
下文中将不再强调 oma 在 SSH 和桌面终端模拟器运行的区别。如果您在 SSH 及 tty 环境,请自行使用 sudo 工具执行 oma。
搜索软件包
在不清楚要安装的软件包名称的情况下,可以利用 oma 的搜索功能找到需要安装的软件包名称。
要通过 oma 搜索软件包,请执行如下命令:
oma search 搜索关键字示例
例如,某用户想在系统里安装《我的世界》启动器 Prism Launcher,但是不清楚 Prism Launcher 在安同 OS 中的软件包名。因此,这位用户就可以执行如下命令得到结果:
oma search Prism
oma 根据如上命令返回的搜索结果
注意
oma 的当前版本不能处理包含多个单词的搜索关键字。例如,oma search Prism Launcher 就不会返回任何结果。
安装软件包
要通过 oma 安装软件包,请执行如下命令:
oma install 软件包1 [软件包2...]Note
上述命令中,方括号中的参数 [软件包2]... 指的是后续的参数是可选的。例如,安装软件包至少需要提供一个包名,因此执行 oma install 软件包1 就会让 oma 执行安装 “软件包1” 的操作;oma install 软件包1 软件包2 就会让 oma 安装两个软件包。
注意,在提供多个参数时不需要加上方括号。
执行安装命令后,oma 会检查包名是否正确,并计算依赖关系。依赖关系计算完毕后,oma 会弹出确认界面。
为了满足您要安装的软件包的依赖关系,oma 会根据计算出的依赖关系安装其他软件包,或是卸载一些软件包。在确认界面,您会看到 oma 对软件包的变动,以及存储空间变化情况。
注意
请仔细验证确认界面的软件包变动情况,尤其是在安装软件包时卸载过多的软件包的情况。
如果您观察到了不正常的情况,请按下 Ctrl - C 终止操作。

oma 执行安装操作之前弹出的确认界面
在确认界面中,可以使用光标键滚动内容。如果您满意 oma 对软件包的更改,请按 Q 退出确认界面,执行安装操作。
如果不满意 oma 对软件包的更改(如注意到卸载了非常多的软件),请按下 Ctrl + C 取消操作。
示例
继续使用 “搜索软件包” 一节中的例子:这位用户通过搜索得知 Prism Launcher 的包名是 prismlauncher,因此这位用户就可以执行如下命令:
oma install prismlauncher
安装 prismlauncher 的确认界面,可以看到依赖关系已经满足(只需要安装自身)
按下 Q,oma 就会继续安装操作:

Prism Launcher 安装完毕
Prism Launcher 随后会安装到系统中。接下来,这位用户就可以在 KDE 菜单中找到 Prism Launcher。
可选选项
安装软件包时可以指定安装选项。指定选项时的命令格式如下:
oma install 选项1 [选项2] 软件包1 [软件包2...]指定选项会影响 oma 的行为。对于安装操作,可以指定以下选项:
--yes或-y:不显示确认界面,直接安装。--reinstall:重新安装已经安装过的软件包。适用于无意中修改了软件包内容的情况。--no-install-recommends:不安装推荐的软件包。有些软件会推荐安装其他的软件,以增强该软件的使用体验。使用这个选项来禁用推荐。
本指南只列出一些常用的选项。其他的安装选项可以通过如下命令获得:
oma install --help卸载软件包
如果在系统中遇到不想要的软件,可以通过 oma 将其卸载。但是多数软件包都是系统的组成部分,您无法卸载它们。
要通过 oma 卸载软件包,请执行如下命令:
oma remove 软件包1 [软件包2...]执行安装命令后,oma 会检查包名是否正确,并计算依赖关系。依赖关系计算完毕后,oma 会弹出确认界面。
为了满足您要安装的软件包的依赖关系,oma 会根据计算出的依赖关系安装其他软件包,或是卸载一些软件包。在确认界面,您会看到 oma 对软件包的变动,以及存储空间变化情况。

oma 执行卸载之前弹出的确认界面
在确认界面中,可以使用光标键滚动内容。如果您满意 oma 对软件包的更改,请按 Q 退出确认界面,执行安装操作。
如果不满意 oma 对软件包的更改(如注意到卸载了非常多的软件),请按下 Ctrl + C 取消操作。
Note
在卸载软件包时,需要尤其注意:
- 有些软件包是系统的重要组成部分,您无法卸载它们。
- 如果您卸载软件时遇到大量被连带卸载的软件包,说明要卸载的包的确是系统的组成部分。请立即按下 Ctrl + C 停止操作。继续卸载这些软件包会导致系统无法启动,或桌面环境无法显示。
示例
继续使用 “搜索软件包” 一节中的例子:这位用户通过搜索得知 Prism Launcher 的包名是 prismlauncher,因此这位用户就可以执行如下命令:
oma remove prismlauncher
卸载 prismlauncher 的确认界面,可以看到依赖关系已经满足(只需要安装自身)
按下 Q,oma 就会继续安装操作:

Prism Launcher 卸载完毕
Prism Launcher 随后会从系统中卸载。
TBD
更新系统或软件包
如果您系统中的软件包版本过旧,需要更新,可以通过 oma 更新它们。
要通过 oma 更新软件包,请执行如下命令:
oma upgrade由于 oma 每次更新的内容是整个系统,因此不论指定多少个软件包,其余的软件包都会随着一起更新。也就是说您无需指定要更新的软件包。
为了满足您要更新的软件包的依赖关系,oma 会根据计算出的依赖关系安装其他软件包,或是卸载一些软件包。在确认界面,您会看到 oma 对软件包的变动,以及存储空间变化情况。

oma 执行更新操作之前弹出的确认界面
在确认界面中,可以使用光标键滚动内容。如果您满意 oma 对软件包的更改,请按 Q 退出确认界面,执行更新操作。
如果不满意 oma 对软件包的更改(如注意到卸载了非常多的软件),请按下 Ctrl + C 取消操作。
示例
继续使用 “搜索软件包” 一节中的例子:这位用户通过搜索得知 Prism Launcher 的包名是 prismlauncher,因此这位用户就可以执行如下命令:
oma upgrade prismlauncher
更新 prismlauncher 的确认界面,可以看到依赖关系已经满足(只需要安装自身)
按下 Q,oma 就会继续更新操作:

Prism Launcher 更新完毕
Prism Launcher 随后会在系统中进行更新。接下来,这位用户就可以在 KDE 菜单中找到更新版本的 Prism Launcher。
管理测试源 (Topics)
什么是测试源?
测试源 (Topics) 是安同 OS 的特色功能,旨在为用户提供尝鲜、测试和反馈的机会及平台。
如果要引入新的软件包,或更新已有软件包的版本,就需要将它们先提交至测试源中,供开发者及感兴趣的用户测试,测试通过后方可发布稳定版软件仓库,提供给广大用户使用。
例如,KDE 桌面环境发布了 KDE Plasma 的 6.0 版本,是一次大更新,因此开发者需要将 KDE 6.0 的更新先发布至测试源,让感兴趣的用户加入测试。在不断地收集反馈、调整后,KDE 6.0 更新才能取代稳定版仓库中的 KDE 5.15。
通过菜单管理和加入测试源
您可以轻松地通过 oma 浏览安同 OS 当前开放的测试源,就像浏览菜单一样方便,不再需要复杂的命令。
启动测试源菜单的命令如下:
oma topics执行这条命令之后,就进入测试源的菜单界面:

oma 的测试源菜单界面
在这个界面中,您可以通过 ↑ ↓ 方向键浏览开放的测试源。 在找到希望加入的测试源后, 可以按 Space 或 Enter 键选中/取消选中测试源。
如果遇到测试源数目过多,无法快速找到想加入的测试源的情况,您可以在浏览界面中直接输入关键词,快速搜索要加入的测试源:

在测试源菜单中快速搜索测试源
在选中所有想加入的测试源之后,按 Esc 键就会将当前选中的测试源应用到系统中。oma 会自动将软件更新到测试源中的版本,并同时更新系统。
Note
如果测试源中包含的软件包并未安装在系统中,您需要在应用更改后手动安装它们。安装流程可参考之前的 “安装软件包” 部分。手动安装的软件包将处于测试源中的版本。

加入测试源之后,软件将会更新至测试源中的版本;同时也会更新系统

加入测试源之后,软件将会更新至测试源中的版本;同时也会更新系统
通过菜单管理测试源非常方便,但有时可能只需操作一个测试源。oma 除了提供菜单式的管理界面之外,还提供直接加入测试源的命令。
通过命令管理和加入测试源
通过命令加入测试源的方式较少使用,您通常会在社区发布的用户公告中看到它们。为了方便用户,公告一般会提供一键加入测试源的命令供用户快速进入测试。
由于命令加入方式需要您知道测试源的具体名称,因此除非在公告中看到,否则不推荐您通过命令加入或退出测试源。
要通过命令加入测试源,您需要写如下命令:
oma topics --opt-in 测试源名称
加入测试源的确认界面
注意
您可以按 q 继续执行操作。如果您观察到了不正常的情况,请按下 Ctrl - C 取消操作。

加入测试源之后,软件将会更新至测试源中的版本;同时也会更新系统
退出测试源
要通过命令加入测试源,您需要写如下命令:
oma topics --opt-out 测试源名称
退出测试源的确认界面
注意
您可以按 q 继续执行操作。如果您观察到了不正常的情况,请按下 Ctrl - C 取消操作。

退出测试源的界面
在退出测试源后,测试源内的软件包将会被回滚到稳定源中的版本。
切换镜像源
您在下载软件包时,如果遇到网速较慢、无法正常下载的情况,您可以通过 oma 切换到速度较快的镜像源。切换镜像源的命令如下:
oma mirrors
oma 的镜像选择界面(上下键选择)

oma 的镜像选择界面(直接输入)
oma中默认的镜像源为 AOSC main repository(hosted by Aperture Science Limited)
在这个界面中,您可以通过 ↑ ↓ 方向键浏览镜像源。为了更方便使用,您也可以直接输入要切换的镜像源。
在找到希望使用的镜像源后, 可以按 Space 或 Enter 键选中/取消选中测试源。
在选中将要使用的镜像源之后,按 Esc 键就会应用该镜像源。

选中 Tsinghua Open Source Mirror 镜像源

应用Tsinghua Open Source Mirror 镜像源
至此,后续的软件包的下载时将在更改后的镜像源下载。
回滚之前的改动
在您误操作之后,或者想返回之前的操作时,您可以通过oma进行回滚。回滚的命令如下:
oma history
回滚记录选择界面
在这个界面中,您可以通过 ↑ ↓ 方向键选择要回滚的记录,在选中之后可以通过 Enter 键对其选中。

回滚输出界面
在这个界面中,您可以通过 q 键或 Ctrl - c 键退出。

回滚结束界面
至此,完成了回滚操作。
列出软件包内含的文件
您可以通过 oma 列出软件包所含的文件。如需查看软件包内含的文件列表,请执行如下命令:
oma files 软件包名称oma 会随后打开一个浏览界面。您可以在这个界面中使用光标键、翻页键 (PgUp / PgDn) 滚动屏幕上的内容。按 Q 键退出浏览。
如,要查看软件包 glibc 的内容,可以执行:
oma files glibcoma 随即打开浏览界面,列出 glibc 软件包的所有文件。

通过搜索文件名查找软件包
通过文件搜索软件包
如果遇到系统提示找不到文件的情况,您可以提供关键字,通过 oma 的按文件搜索功能找到需要的软件包。要按文件名搜索软件包,请执行如下命令:
oma provides 文件名关键字示例
假设用户编译软件时,编译器提示找不到头文件 <nlohmann/json.h>,该用户就可以通过 oma 搜索报告缺少的文件名,找到对应的软件包。

通过搜索文件名查找软件包
由此可见,对应的软件包名是 nlohmann-json,用户就可以运行 oma install nlohmann-json 补上缺失的头文件,继续编译。
TUI 模式
oma 提供一个类似桌面程序的 TUI 界面,操作简单,对不熟悉终端的用户比较友好。但是目前 TUI 模式下只能管理软件包,没有测试源和镜像管理的功能。
进入 TUI 模式
要使用 TUI 模式,请执行如下两个命令之一:
oma或
oma tui输入密码后即可进入 oma 的 TUI 模式。

oma 的 TUI 模式
可以看到,TUI 模式下拥有搜索框和结果列表。
光标默认在搜索框处,可以立即键入搜索关键字,找到要安装、卸载或更新的软件包。搜索结果会显示在搜索框下面的列表中。
TUI 模式下的按键说明
在 TUI 模式下,需要使用以下按键:
- ␣(空格键):用于在搜索结果列表中选中或取消选中软件包。
- F1 :查看 oma 的待办事项(准备安装、更新或卸载的软件包)。
- Esc : 立即应用修改。
- / :跳转至搜索框,搜索软件包。
- Tab ↹ :在搜索结果列表和搜索框之间切换。
- Ctrl + C :不应用修改,退出 oma。
TUI 模式下安装、卸载、更新软件包

小熊猫包管理器 TUI 界面
在搜索框中输入要操作(安装、卸载、更新)的软件包名,出现搜索结果后,您可以按 ↑ ↓ 键选中包名,之后按 ␣ 键将其添加到右边的代办事项框中。
待办事项框中存放的是您在搜索结果列表中选中的软件包。如果软件包已经安装在系统中,则待办事项中对应的软件包会以 “-” 号开头,代表需要卸载。反之,“+” 号就代表软件未安装或版本较旧,需要下载或更新。

小熊猫包管理器选中代办事项界面
若要从待办事项中删除一条操作,您可以按下 Tab 键切换到待办事项列表,用光标键移动到要移除的操作上,然后按下 Space 或 Enter 将其移除。
在您选择了所有想要安装或卸载的软件包后,就可以通过按 Esc 键进入确认界面,再次确认待办事项中的操作:

小熊猫包管理器选中代办事项的确认界面
和之前的确认界面一样,在这里您可以按 Q 键结束审阅,继续操作。如有异议,按 Ctrl - c 键退出。

待办事项中的操作执行完成后
TUI 模式下更新系统
在更新系统时,进入TUI界面,直接按 Esc 键便可对系统进行更新。