各 GNU / Linux 发行版中最明显的差异即包管理。包管理有多个层面的区别,但最引人注目的应属命令行使用方式了。管理不同发行版,若有一个统一的包管理,那会让维护难度降低一个台阶。今日,博主向大家推荐 PackageKit —— 一个统一的包管理工具。
当然,PackageKit 并非一个包管理。它是一个抽象层,下面可以接各种包管理,称为「后端」。Arch Linux 用户可能对它有些许陌生 —— Arch 用户大多直接使用 pacman —— 有一些发行版已经内置 PackageKit 了。
作为介绍,博主带读者了解一下何为 PackageKit,以及如何使用它。
何为 PackageKit? #
PackageKit 为 FreeDesktop.org 下属的一个软件,意图在于简化软件管理,并统一不同发行版的管理界面。
例如,用户曾使用 apt
dnf
pacma
n 等命令安装软件。经 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 都支持,因此读者仍须熟练掌握发行版包管理的使用方法。