PackageKit is a free and open-source suite of software applications designed to provide a consistent and high-level front end for a number of different package management systems. PackageKit was created by Richard Hughes in 2007, and first introduced into an operating system as a default application in May 2008 with the release of Fedora 9.
The suite is cross-platform, though it is primarily targeted at Linux distributions which follow the interoperability standards set out by the group. It uses the software libraries provided by the D-Bus and Polkit projects to handle inter-process communication and privilege negotiation respectively.
Since 1995, package formats have been around, since 2000 there have been dependency solvers and auto-downloaders as a layer on top of them around, and since 2004 graphical front-ends. PackageKit seeks to introduce automatic updates without having to authenticate as root, fast-user-switching, warnings translated into the correct locale, common upstream GNOME and KDE tools and one software over multiple Linux distributions.
Although bug fixes are still released, no major features have been developed since around 2014, and the package's maintainer predicts that it will gradually be replaced by other tools as technologies such as Flatpak and Snap become more popular.

Software architecture

PackageKit itself runs as a system-activated daemon, packagekitd, which abstracts out differences between the different systems. A library called libpackagekit allows other programs to interact with PackageKit.
Features include:
pkcon is the official program of PackageKit, it operates from the command-line.

Graphical front-ends

gnome-packagekit is an official GNOME front-end for PackageKit. Unlike GNOME Software, gnome-packagekit can handle all packages, not just applications, and has advanced features that are missing in GNOME Software as of June 2020.
GNOME Software
GNOME Software is a utility for installing the applications and updates on Linux. It is part of the GNOME Core Applications and was introduced in GNOME 3.10.
Qt">Qt (software)">Qt-based


A number of different package management systems support different abstract methods and signals used by the front-end tools. Supported back-ends include: