PackageKit is a
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
suite of
software application
Application software is any computer program that is intended for end-user use not computer operator, operating, system administration, administering or computer programming, programming the computer. An application (app, application program, sof ...
s designed to provide a consistent and high-level
abstraction layer
In computing, an abstraction layer or abstraction level is a way of hiding the working details of a subsystem. Examples of software models that use layers of abstraction include the OSI model for network protocols, OpenGL, and other graphics libra ...
for a number of different
package management systems. PackageKit was created by Richard Hughes in 2007, and first introduced into an
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
as a default application in May 2008 with the release of
Fedora 9.
The suite is
cross-platform
Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
, though it is primarily targeted at
Linux distribution
A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
s which follow the interoperability standards set out by the
freedesktop.org group. It uses the
software libraries provided by the
D-Bus and
Polkit
Polkit (formerly PolicyKit) is a component for controlling system-wide privileges in Unix-like operating systems. It provides an organized way for non-privileged processes to communicate with privileged ones. Polkit allows a level of control of ...
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
A demon is a malevolent supernatural being, evil spirit or fiend in religion, occultism, literature, fiction, mythology and folklore.
Demon, daemon or dæmon may also refer to:
Entertainment Fictional entities
* Daemon (G.I. Joe), a character ...
, 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
Polkit (formerly PolicyKit) is a component for controlling system-wide privileges in Unix-like operating systems. It provides an organized way for non-privileged processes to communicate with privileged ones. Polkit allows a level of control of ...
* 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
*
pkcon
is the official
front-end of PackageKit, it operates from the
command line.
GTK
GTK (formerly GIMP ToolKit and GTK+) is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both Free software, free and ...
-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:
*
Advanced Packaging Tool (APT)
* Conary
*
libdnf &
librepo,
the libraries upon which
DNF, (the successor to
yum) builds
*
Entropy
Entropy is a scientific concept, most commonly associated with states of disorder, randomness, or uncertainty. The term and the concept are used in diverse fields, from classical thermodynamics, where it was first recognized, to the micros ...
*
Opkg
*
pacman
*
PiSi
*
Portage
*
Smart Package Manager
*
urpmi
*
YUM
*
ZYpp
See also
*
AppStream
*
Listaller
*
Polkit
Polkit (formerly PolicyKit) is a component for controlling system-wide privileges in Unix-like operating systems. It provides an organized way for non-privileged processes to communicate with privileged ones. Polkit allows a level of control of ...
*
Red Carpet
*
Software Updater
*
List of Linux package management systems
References
External links
*
{{DEFAULTSORT:Packagekit
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