PackageKit is a free and open-source suite of software applications designed to provide a consistent and high-level abstraction layer for a number of different package management systems. PackageKit was created by Richard Hughes in 2007, and first embedded in 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 freedesktop.org group. It uses the software libraries provided by the D-Bus and Polkit projects to handle inter-process communication and privilege negotiation respectively.

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.

Software architecture

PackageKit runs as a system-activated daemon, named packagekitd, which abstracts out differences between the different systems. A library called libpackagekit allows other programs to interact with PackageKit.

Features include:

  • installing local files, ServicePack media and packages from remote sources
  • authorization using Polkit
  • the use of existing packaging tools
  • multi-user system awareness – it will not allow shutdown in critical parts of the transaction
  • a system-activated daemon which exits when not in use

Front-ends

gnome-packagekit 3.32 (released in 2019-03)
  • pkgcli is the official front-end of PackageKit, it operates from the command line.
  • pkcon the older command-line interface of PackageKit.

GTK-based:

  • 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 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-based:

  • Apper
  • Discover

Back-ends

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

See also

External links