| What is PackageKit? |

Back to the main page

# What is PackageKit?

PackageKit is a system designed to make installing and updating software on your computer easier. The primary design goal is to unify all the software graphical tools used in different distributions, and use some of the latest technology like PolicyKit to make the process suck less.

| If you're easily bored, checkout the presentation or the video I prepared for FOSDEM 2008 and skip the rest of this page.

The actual nuts-and-bolts distro tool (yum, apt, conary, etc) is used by PackageKit using compiled and scripted helpers. PackageKit isn't meant to replace these tools, instead providing a common set of abstractions that can be used by standard GUI and text mode package managers.

PackageKit itself is a system activated daemon called `packagekitd`. Being system activated means that it's only being run when the user is using a text mode or graphical tool, and quits when it's no longer being used. This means we don't delay the boot sequence or session startup and don't consume memory when not being used.

`gnome-packagekit` is the name of the collection of graphical tools for PackageKit to be used in the GNOME desktop.

KPackageKit is the name of the KDE graphical tools designed for PackageKit.

By default, PackageKit uses PolicyKit for user authentication. This means that you, as an admin, can specify with fine-grained control what your users can and cannot do.

For instance, an admin could specify that unprivileged users can update the system and do searching, but are not allowed to install or remove packages. For home users it's typical to ask the user for their own, or the administrator's `root` password. With PolicyKit, all these options are possible.

Use cases for PackageKit exist for the following scenarios:

- Boot time security updates
- Installing files automatically, e.g. openoffice-clipart
- Installing new features, e.g. smart-card readers
- Allowing unprivileged users to install software in a corporate build
- Opening unknown file formats
- Removing dependencies for files

More details can be found on the wiki.

PackageKit and gnome-packagekit are GPLv2+ licensed. This means that you can redistribute and/or modify PackageKit and gnome-packagekit under the terms of the GNU General Public License as published by the Free Software foundation; either version 2 of the License, or (at your option) any later version. See the license information included with the software for more details.

What PackageKit is not:

- A huge daemon with lots of dependencies.
- 100% API stable. The API may change a little until we ship 1.0.0
- Targeted to a particular architecture or platform.
- Produced by any one vendor. There are many contributors helping to get this done.

Formally, PackageKit is a D-Bus abstraction layer that allows the session user to manage packages in a secure way using a cross-distro, cross-architecture API.

Back to the main page