Supriya Ghosh (Editor)

PackageKit

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Original author(s)
  
Richard Hughes

Written in
  
C, C++, Python

Development status
  
Active

PackageKit

Initial release
  
2007; 10 years ago (2007)

Stable release
  
1.1.5 / 17 January 2017; 2 months ago (2017-01-17)

Repository
  
github.com/hughsie/PackageKit

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

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.

Since 1995, 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. 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.

Software architecture

PackageKit itself runs as a system-activated daemon, 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

    Graphical front-ends for PackageKit include:

    pkcon operates from the command-line.

    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. Back-ends supported include:

  • Advanced Packaging Tool (APT)
  • box
  • Conary
  • hawkey & librepo, the libraries upon which DNF, (the successor to yum) builds
  • Entropy
  • Opkg
  • Pacman
  • PiSi
  • poldek
  • Portage
  • razor
  • Smart Package Manager
  • urpmi
  • YUM
  • ZYpp
  • References

    PackageKit Wikipedia