![]() | |
![]() PackageKit is a system daemon, various graphical front-ends are available | |
Original author(s) | Richard Hughes |
---|---|
Initial release | 2007; 18 years ago (2007) |
Stable release | |
Repository | |
Written in | C,C++,Python |
Operating system | Linux |
Type | Package management system |
License | GNU General Public License |
Website | www |
PackageKit is afree and open-source suite ofsoftware applications designed to provide a consistent and high-levelabstraction layer for a number of differentpackage management systems. PackageKit was created by Richard Hughes in 2007,[2][3] and first introduced into anoperating system as a default application in May 2008 with the release ofFedora 9.[4]
The suite iscross-platform, though it is primarily targeted atLinux distributions which follow the interoperability standards set out by thefreedesktop.org group. It uses thesoftware libraries provided by theD-Bus andPolkit 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.[5]
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 asFlatpak andSnap as they become more popular. However, a D-Bus interface would still be needed to support managing packages on mutable file systems.[6]
PackageKit runs as a system-activateddaemon, namedpackagekitd
, which abstracts out differences between the different systems. A library calledlibpackagekit
allows other programs to interact with PackageKit.[7]
Features include:
pkcon
is the officialfront-end of PackageKit, it operates from thecommand line.[8]GTK-based:
Qt-based:
A number of differentpackage management systems (known as back-ends) support different abstract methods and signals used by the front-end tools.[9] Supported back-ends include: