PackageKit

Free software


title: "PackageKit" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["applications-using-d-bus", "free-package-management-systems", "free-software-programmed-in-c", "free-software-programmed-in-c++", "free-software-programmed-in-python", "linux-package-management-related-software", "linux-pms-graphical-front-ends", "package-management-software-that-uses-gtk", "package-management-software-that-uses-qt", "software-using-the-gnu-general-public-license"] description: "Free software" topic_path: "technology/operating-systems" source: "https://en.wikipedia.org/wiki/PackageKit" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Free software ::

::data[format=table title="Infobox software"]

FieldValue
namePackageKit
logopackagekit.png
screenshotLinux desktop system daemons and their graphical front-ends.svg
captionPackageKit is a system daemon, various graphical front-ends are available
authorRichard Hughes
developerRichard Hughes, Matthias Klumpp, multiple backend maintainers{{cite web
titleBackend Maintainers
urlhttps://github.com/PackageKit/PackageKit/blob/main/backends/MAINTAINERS.md
access-date28 January 2026
url-statuslive
released
latest release version
latest release date
latest preview date
programming languageC, C++, Python
operating systemLinux
language count
genrePackage management system
licenseGNU General Public License
website
::

| name = PackageKit | logo = packagekit.png | logo caption = | logo_size = | logo_alt = | screenshot = Linux desktop system daemons and their graphical front-ends.svg | caption = PackageKit is a system daemon, various graphical front-ends are available | screenshot_size = | screenshot_alt = | collapsible = | author = Richard Hughes | developer = Richard Hughes, Matthias Klumpp, multiple backend maintainers{{cite web |title=Backend Maintainers |url=https://github.com/PackageKit/PackageKit/blob/main/backends/MAINTAINERS.md |access-date=28 January 2026 |url-status=live | released = | discontinued = | latest release version = | latest release date = | latest preview version = | latest preview date = | programming language = C, C++, Python | operating system = Linux | platform = | size = | language = | language count = | language footnote = | genre = Package management system | license = GNU General Public License | website =

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 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 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.

Although PackageKit is still maintained, no major features have been developed since around 2014, and the package's maintainer suggested that it could be replaced by plugins for other tools, such as Flatpak and Snap as they become more popular. However, a D-Bus interface would still be needed to support managing packages on mutable file systems.

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

::figure[src="https://upload.wikimedia.org/wikipedia/commons/2/26/Gnome-packagekit_(gpk-application)+GNOME_PackageKit_Update_Viewer(gpk-update-viewer)+GNOME_PackageKit_Software_Log_Viewer(gpk-log)_all_in_version_3.32_released_2019-03.png" caption="gnome-packagekit 3.32 (released in 2019-03)"] ::

  • pkcon is the official front-end of PackageKit, it operates from the command line.{{cite web |url=https://www.freedesktop.org/software/PackageKit/pk-using.html |title=HowTo use pkon}} 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: File:Kpackagekit.png|Apper File:Plasma-discover.png|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:

References

References

  1. (27 July 2007). "Installing and Updating Software Blows Goats". Richard Hughes.
  2. "Richard Hughes' blog posts about PackageKit". Richard Hughes.
  3. (28 May 2008). "Releases/9/FeatureList". Fedora Project.
  4. (2008-02-24). "Introduction to PackageKit, a Package Abstraction Framework". Richard Hughes.
  5. (2019-02-15). "PackageKit is dead, long live, well, something else". Richard Hughes.
  6. "PackageKit Reference Manual". packagekit.org.
  7. "Frequently asked questions". packagekit.org.
  8. "libdnf on github".
  9. "librepo on github".

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

applications-using-d-busfree-package-management-systemsfree-software-programmed-in-cfree-software-programmed-in-c++free-software-programmed-in-pythonlinux-package-management-related-softwarelinux-pms-graphical-front-endspackage-management-software-that-uses-gtkpackage-management-software-that-uses-qtsoftware-using-the-gnu-general-public-license