[packagekit] New PackageKit Chapter in Fedora 12 Deployment Guide

Matthias Clasen matthias.clasen at gmail.com
Mon Sep 28 08:49:30 PDT 2009


On Fri, Sep 25, 2009 at 9:17 AM, Douglas Silas <dhensley at redhat.com> wrote:
> Hi,
>
> I'm updating the Deployment Guide for Fedora 12, and for this
> project I've written a chapter on PackageKit. I would be interested
> in any comments or suggestions on the chapter, and especially with
> new material such as tips and tricks, which I would be glad to add.
> Further details on how functions in PackageKit relate to what Yum is
> doing behind-the-scenes would definitely be welcome.
>
> The PackageKit chapter ties into the Yum chapter, naturally, though
> that one is not 100% complete yet. (For example, adding and
> configuring Yum repositories are completely absent at the moment.)
>
> This is the second chapter of the Deployment Guide (following Yum),
> so the pace of the material is a bit slower than the rest.
>
> The PackageKit chapter is here:
>
> http://dsilas.fedorapeople.org/Deployment_Guide/en-US/html-single/#ch-graphical_package_management
>
> The Deployment Guide project page is here:
>
> https://fedorahosted.org/deploymentguide/
>
> I'm not subscribed to this list, so please include me in any
> replies. I'm looking forward to any and all critiques!

Hey Douglas, thanks for writing that up, and thanks for asking for review.

The introductory paragraphs that describe the overall architecture is
a bit inaccurate in some aspects. I'm not sure it is really
interesting to describe the architecture at that level of detail in
the first place. Some of the things I noticed as being slightly off
are:

- "PackageKit" is the name for the overall system, therefore
describing it as a 'graphical application' is somewhat inaccurate. The
graphical applications are all part of the frontend.

- "communicates with Yum via dbus" is somewhat misleading, since yum
itself doesn't have any dbus api. PackageKit has a backend that uses
the yum Python api, and the communication between the PackageKit
daemon and this backend is via dbus.

- "Architecturally, PackageKit is separated from the provisioning of
package management" sounds unnecessarily complicated. I would just say
something like: PackageKit provides an abstract to install, remove and
list packages. It has implementations for multiple package formats
(yum/rpm, deb, etc). Fedora uses the yum backend.

If you want to describe the architecture in general terms, I would say
something like: The PackageKit architecture consists of three layers:
1) the packagekitd daemon which runs outside the user session, and
provides a dbus interface on the system bus 2) distribution-specific
backends that are used by the daemon to do the actual work of
installing, removing and querying packages 3) graphical tools that run
in the user session

It might be worthwhile to list some of the concrete advantages of this
architecture
- the daemon runs outside the session, so your installation / update
will continue even after you logged out, and it will not leave you
with a messed up rpm database when your X crashes halfway through the
update
- the same interface on all supported distributions
- integrates nicely by using PolicyKit for authorization
- distribution-neutral dbus interface allows for application
integration, e.g. automatic font and codec installation
- I probably forgot some more here...

In the sections describing the various graphical tools, it might be
nice to mention the names of the binaries behind the menuitems
(gpk-application, gpk-update-viewer, gpk-repo)


Matthias


More information about the PackageKit mailing list