KaOS is not the typical Arch based distribution in terms of package management. In fact the developers claim that it is not Arch based at all for reasons related to package management in the distribution. It does use pacman as its package manager, and Arch's tools to build packages, but the similarity to Arch based distributions there. In this article, a supplement to a review of KaOS's 2019.10 release, we discuss KaOS package management and some of features that distinguish it from Arch based distributions.
The choice of Pacman and Arch tools for package building and package management is a large part of the strength of the distribution. As the developer states on the KaOS website:
KaOS has limited repositories, for many users the options available will be plenty. When that is not the case, one of the reasons why Pacman was chosen for package manager comes into play. It offers about the easiest solution available to build your own packages. KaOS Community Packages (KCP) was created so everyone can share the PKGBUILDs they created or adjusted for KaOS.
KaOS uses Pacman as its package manager, but unlike Arch based distributions, it builds its packages from scratch using Arch developed tools and systems, i.e., running Arch's makepkg on a PKGBUILD file. It also uses its own repositories to distribute its official packages. Manjaro does this also, but unlike KaOS it uses Arch's PKGBUILDs and not its own.
The packages are grouped into three repositories:
Just like Arch and and Arch based distributions, repositories are defined in pacman.conf. Unlike Arch and Arch based distributions that use Arch repositories, it appears that KaOS packages are not signed and doesn't make use of pacman's ability to verify signatures using a key store of official signing keys. It does use SHA256 checksum verification, however, but this doesn't insure package authenticity, only download integrity.
Some users may be amused by the Pac-Man eating candy progress indicator in the pacman output during package downloads, as shown in the following screenshot, enabled by the addition of I Love Candy in the configuration file.
KaOS includes, by default, the Octopi Qt based GUI front end to pacman. Octopi is fully integrated into the Plasma shell offering direct action from the system tray applet for some package management tasks. The first image in the following set of screenshots shows the panel applet, its menu options, and the window that opens when choosing the applet's System upgrade menu item. The rest of the images show the various menu items, dialogs, and the various screens when performing package management tasks on packages from the official repositories.
As the AUR is optionally enabled in Arch, if the user configures this, or in some Arch based distributions, the KCP is enabled by default in the KaOS's Octopi. This feature works in the same way as with the AUR with the same annoying flaw in those implementations where, despite the UI, it is not possible to search the official repositories and the community/user repository at the same time.
As the quotation from the KaOS site at the top of this article indicates, KaOS makes available to its community a repository for sharing PKGBUILDs, similar to the Arch User Repoitory. It also provides the KCP Portal, a way to browse available packages online. This is one of the standout features of KaOS. Unlike the AUR website, it is less technical, but it is a visually appealing design allowing easy discovery of available applications. The package detail modal window -- the fourth in the following set of screenshots shows this for the kvantum package -- features a Copy Command button which places the specific command to install the package into the clipboard. This can be pasted directly into a terminal to install the package. The detail window also shows the package metadata defined in the PKGBUILD, a link to the package's GitHub page, and a link to download a zip of the PKGBUILD.
In the following set of images we see the KCP helper program in operation. The first image shows the command copied from the kvantum package detail page pasted in Konsole. The second through the seventh images shows the kcp CLI in operation installing kvantum. The eighth image shows its help output, and the last six images show searching for a package, showing more information on a package and installing a package, in this case, Microsoft Visual Studio Code. The eleventh image shows the PKGBUILD for vscode available on the KCP and the PKGBUILD of Arch's kvantum package form its official repositories.
In addition to managing KCP packages through the KCP CLI, users can manage KCP packages through the Octopi GUI. THe following set of images shows the process of searching for a package and installing a package, in this case searching for TexMaker but installing the closest available application TexStudio. Despite the thirteen minutes elapsed between the start of the installation and the password prompt, as it would seem judging by the clock in the panel the process of building the package did not take this long.
KaOS supports Flatpak packages. The KaOS documentation on Flatpak describes the Flatpak management.
The developer made a wise choice in choosing Pacman and Arch tools for package building and package management. It allows users all of the benefits of an Arch system in allowing users to easily learn and manage an important part of system as a result of the Arch design philosophy which results in a simple and transparent system. The distribution's implementation of a community repository is exemplary and deserves a lot of credit.