From Wikipedia, the free encyclopedia
Jump to: navigation, search
Linux desktop system daemons and their graphical front-ends.svg
PackageKit is a system daemon, various graphical front-ends are available
Original author(s) Richard Hughes
Stable release 0.8.17 (March 21, 2014; 28 days ago (2014-03-21)) [±]
Development status Active
Written in C, C++, Python
Operating system Linux
Type Package management system
License GNU General Public License

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.

The suite is ostensibly 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.

The motivation behind PackageKit is not to reinvent the wheel, but to push forward. Since 1995 "kick-ass" 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. Now PackageKit wants to introduce automatic updates without having the authenticate as root, fast-user-switching, warnings translated into the correct locale, common upstream GNOME and KDE tools and of course one software over multiple Linux distributions.[1]


PackageKit was created by Richard Hughes and first proposed in a series of blog posts in 2007,[2][3] and is now developed by a small team of developers. Fedora 9 was the first operating system to use it as default front end for yum. It underwent many updates in Fedora 10 and Fedora 11.

Software architecture[edit]

PackageKit itself is a system-activated daemon called packagekitd, that abstracts out differences between the different systems. A library called libpackagekit also allows other programs to interact with PackageKit.[4]

Features include:

  • Installing local files, ServicePack media and from remote sources.
  • Authorization using Polkit.
  • Does not replace existing packaging tools.
  • Multi-user system aware – it will not allow shutdown in critical parts of the transaction.
  • A system activated daemon so exits when not in use.


There are a couple of graphical front-ends for PackageKit:


A number of different package management systems (known as back-ends) support different abstract methods and signals that are used by the front-end tools.[6] Back-ends supported include:

See also[edit]


  1. ^ "Introduction to PackageKit, a Package Abstraction Framework" (PDF). Richard Hughes. 2008-02-24. Retrieved 2014-04-11. 
  2. ^ "Installing and Updating Software Blows Goats". Richard Hughes. Retrieved 18 January 2011. 
  3. ^ "Richard Hughes' blog posts about PackageKit". Richard Hughes. Retrieved 18 January 2011. 
  4. ^ "PackageKit Reference Manual". Retrieved 10 July 2009. 
  5. ^ "HowTo use pkon". 
  6. ^ "Frequently asked questions". Retrieved 10 July 2009. 
  7. ^ "hawkey on github". 
  8. ^ "librepo on github". 

External links[edit]