PackageKit

Last updated
PackageKit
Original author(s) Richard Hughes
Initial release2007;17 years ago (2007)
Stable release
1.3.0 [1] / 16 June 2024;43 days ago (16 June 2024)
Repository
Written in C, C++, Python
Operating system Linux
Type Package management system
License GNU General Public License
Website www.freedesktop.org/software/PackageKit/

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, [2] [3] and first introduced into an operating system as a default application in May 2008 with the release of Fedora 9. [4]

Contents

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. [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 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. [6]

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

Features include:

Front-ends

gnome-packagekit 3.32 (released in 2019-03) 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
gnome-packagekit 3.32 (released in 2019-03)

GTK-based:

Qt-based:

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. [9] Supported back-ends include:

See also

Related Research Articles

<span class="mw-page-title-main">Package manager</span> Software tools for handling software packages

A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.

<span class="mw-page-title-main">APT (software)</span> Free software package management system

Advanced package tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian and Debian-based Linux distributions. APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from precompiled files or by compiling source code.

yum (software) Free and open-source command-line package management utility

The Yellowdog Updater Modified (YUM) is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.

<span class="mw-page-title-main">Portage (software)</span> Gentoo package management system

Portage is a package management system originally created for and used by Gentoo Linux and also by ChromeOS, Calculate, Sabayon, and Funtoo Linux among others. Portage is based on the concept of ports collections. Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system-independent. The Gentoo/Alt project was concerned with using Portage to manage other operating systems, such as BSDs, macOS and Solaris. The most notable of these implementations is the Gentoo/FreeBSD project.

up2date, also known as the Red Hat Update Agent, is a tool used by older versions of Red Hat Enterprise Linux, CentOS and Fedora Core that downloads and installs new software and upgrades the operating system. It functions as a front-end to the RPM Package Manager and adds advanced features such as automatic dependency resolution. The file /etc/sysconfig/rhn/sources specifies where up2date will search for packages.

<span class="mw-page-title-main">Transmission (BitTorrent client)</span> BitTorrent client

Transmission is a BitTorrent client which features a variety of user interfaces on top of a cross-platform back-end. Transmission is free software licensed under the terms of the GNU General Public License, with parts under the MIT License.

<span class="mw-page-title-main">Fedora Linux</span> Linux distribution by Fedora Project

Fedora Linux is a Linux distribution developed by the Fedora Project. It was originally developed in 2003 as a continuation of the Red Hat Linux project. It contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. It is now the upstream source for CentOS Stream and Red Hat Enterprise Linux.

<span class="mw-page-title-main">ZYpp</span> Linux package management library

ZYpp is a package manager engine that powers Linux applications like YaST, Zypper and the implementation of PackageKit for openSUSE and SUSE Linux Enterprise. Unlike some more basic package managers, it provides a satisfiability solver to compute package dependencies. It is a free and open-source software project sponsored by SUSE and licensed under the terms of the GNU General Public License v2 or later. ZYpp is implemented mostly in the programming language C++.

<span class="mw-page-title-main">GNOME Disks</span>

GNOME Disks is a graphical front-end for udisks. It can be used for partition management, S.M.A.R.T. monitoring, benchmarking, and software RAID. An introduction is included in the GNOME Documentation Project.

systemd Suite of system components for Linux

systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manager" — an init system used to bootstrap user space and manage user processes. It also provides replacements for various daemons and utilities, including device management, login management, network connection management, and event logging. The name systemd adheres to the Unix convention of naming daemons by appending the letter d. It also plays on the term "System D", which refers to a person's ability to adapt quickly and improvise to solve problems.

<span class="mw-page-title-main">Hanthana Linux (operating system)</span> Linux distribution

Hanthana Linux is a Linux distribution based on Fedora, distributed as free and open source software.

<span class="mw-page-title-main">Listaller</span> Linux package management system

Listaller is a free computer software installation system aimed at making it simple to create a package that can be installed on all Linux distributions as well as providing tools and API to make software management on Linux more user-friendly.

Fedora Linux is a popular Linux distribution developed by the Fedora Project. Fedora attempts to maintain a six-month release schedule, offering new versions in May and November, although some releases have experienced minor delays.

<span class="mw-page-title-main">GNOME Software</span> GNOME application manager

GNOME Software is a utility for installing applications and updates on Linux. It is part of the GNOME Core Applications, and was introduced in GNOME 3.10.

<span class="mw-page-title-main">UPower</span> Linux power management middleware

UPower is a piece of middleware for power management on Linux systems. It enumerates power sources, maintains statistics and history data on them and notifies about status changes. It consists of a daemon (upowerd), an application programming interface and a set of command line tools. The daemon provides its functionality to applications over the system bus. PolicyKit restricts access to the UPower functionality for initiating hibernate mode or shutting down the operating system (freedesktop.upower.policy). The command-line client program upower can be used to query and monitor information about the power supply devices in the system. Graphical user interfaces to the functionality of UPower include the GNOME Power Manager and the Xfce Power Manager.

<span class="mw-page-title-main">DNF (software)</span> RPM package manager

DNF or Dandified YUM is the next-generation version of the Yellowdog Updater, Modified (yum), a package manager for .rpm-based Linux distributions. DNF was introduced in Fedora 18 in 2013; it has been the default package manager since Fedora 22 in 2015, Red Hat Enterprise Linux 8, and OpenMandriva, and is also an alternative package manager for Mageia.

fwupd is an open-source daemon for managing the installation of firmware updates on Linux-based systems, developed by GNOME maintainer Richard Hughes. It is designed primarily for servicing the Unified Extensible Firmware Interface (UEFI) firmware on supported devices via EFI System Resource Table (ESRT) and UEFI Capsule, which is supported in Linux kernel 4.2 and later. Previously, the initiation of UEFI firmware updates within an operating system could, on most systems, only be performed using Microsoft Windows or DOS-specific software. ESRT allows the firmware to expose updatable components to the operating system, which can pass a UEFI capsule with updated firmware for processing and installation on the next boot. Updates can be exposed via a command line tool, or within graphical package managers via a D-Bus interface.

Container Linux is a discontinued open-source lightweight operating system based on the Linux kernel and designed for providing infrastructure for clustered deployments. One of its focuses was scalability. As an operating system, Container Linux provided only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing.

References

  1. "Release 1.3.0". 16 June 2024. Retrieved 22 June 2024.
  2. "Installing and Updating Software Blows Goats". Richard Hughes. 27 July 2007. Retrieved 18 January 2011.
  3. "Richard Hughes' blog posts about PackageKit". Richard Hughes. Retrieved 18 January 2011.
  4. "Releases/9/FeatureList". Fedora Project Wiki. Fedora Project. 28 May 2008. Retrieved 7 July 2015.
  5. "Introduction to PackageKit, a Package Abstraction Framework" (PDF). Richard Hughes. 2008-02-24. Retrieved 2014-04-11.
  6. "PackageKit is dead, long live, well, something else". Richard Hughes. 2019-02-15. Retrieved 2019-06-18.
  7. "PackageKit Reference Manual". packagekit.org. Archived from the original on 16 July 2009. Retrieved 10 July 2009.
  8. "HowTo use pkon".
  9. "Frequently asked questions". packagekit.org. Archived from the original on 19 March 2008. Retrieved 10 July 2009.
  10. "libdnf on github". GitHub .
  11. "librepo on github". GitHub .