分类
Linux

统一包管理 —— PackageKit 介绍及初步使用

各 GNU / Linux 发行版的包管理使用方式不一,就由 PackageKit 一统江湖吧。

各 GNU / Linux 发行版中最明显的差异即包管理。包管理有多个层面的区别,但最引人注目的应属命令行使用方式了。管理不同发行版,若有一个统一的包管理,那会让维护难度降低一个台阶。今日,博主向大家推荐 PackageKit —— 一个统一的包管理工具。

当然,PackageKit 并非一个包管理。它是一个抽象层,下面可以接各种包管理,称为「后端」。Arch Linux 用户可能对它有些许陌生 —— Arch 用户大多直接使用 pacman —— 有一些发行版已经内置 PackageKit 了。

作为介绍,博主带读者了解一下何为 PackageKit,以及如何使用它。

何为 PackageKit?

PackageKit 为 FreeDesktop.org 下属的一个软件,意图在于简化软件管理,并统一不同发行版的管理界面。

例如,用户曾使用 apt dnf pacman 等命令安装软件。经 PackageKit 统一后,可以使用统一的 pkcon 命令安装。当然,具体事物仍需发行版包管理来接手;软件包差异也不会因此减少。

PackageKit 使用 D-Bus 进行 C/S 通信,并使用 PolicyKit 进行权限管理。这样做是利是弊,还请读者自行评判。

开始使用 PackageKit

对于 Arch Linux,PackageKit 支持 alpm 作为后端。其他发行版应也有支持,具体请参见发行版文档。

有些发行版可选 PackageKit 安装(如 Arch),而有些则强制依赖。具体请参见发行版文档。

对于 Arch Linux,可以通过 pacman -S packagekit 安装。

尝试使用 PackageKit 简化软件管理

这里使用 pacman 作为对照,以示 PackageKit 之等价命令。PackageKit 使用 pkcon 命令进行管理。

由于使用 PolicyKit,在 Arch Linux 上 PackageKit 默认允许 wheel 用户组的用户进行操作。读者可以阅读 /usr/share/polkit-1/rules.d/org.freedesktop.packagekit.rules 查看策略。

获取软件信息

$ pacman -Qi pacman
$ pkcon get-details pacman

安装软件

$ sudo pacman -S pacman
$ pkcon install pacman

更新

$ sudo pacman -Syu
$ pkcon update

PackageKit 支持的操作还有很多,读者可以自行挖掘。当然,不是所有操作 PackageKit 都支持,因此读者仍须熟练掌握发行版包管理的使用方法。