"PackageKit is a glue layer between the distro-specific parts, and some prettiness," Hughes explains. What PackageKit effectively is, is a universal front-end to the various distribution-native packaging formats such ad dpkg and rpm, leaving them intact. As is often the case, the tool started when Hughes asked himself a fairly simple question: "Can you make a system so that you can still use the existing tools and put a bit of cleverness on top?"
PackageKit only runs when it's called, and communicates with the native packaging systems using the libpackagekit library. As Hughes explains:
Again, I have my reservations. Just like with the Berlin Packaging API proposals and concepts, PackageKit simply doesn't address the bigger issue at hand: software installation on just about any operating system is inconsistent, messy, overly complicated, and anything but transparent. Whether we're talking the ten billion million different types of installers in Windows, the insanely complex (for less computer-literate users!) Synaptic, or yes, even PackageKit, these tools are extremely alien and incomprehensible for less computer-savvy people. Mac OS X does it better, but it lacks a whole boatload of other features that any self-respecting operating system should have, such as a system-wide application updater or a proper way of uninstalling more complex applications.
In order to fix these deeply rooted issues, we need to radically change the way we approach installing, managing, and removing applications. All present-day paradigms have their strengths, but also a whole slew of limitations. That's why I came up with the Utopian Package System, which combines all the strong points of the various paradigms.