Our package management sucks for the desktop user. Out of the box, we install X different package managers, all of which seem to implement their own subtly different methods for automatic dependency tracking, handling the Recommends field, and determining what is installed and remove on a dist-upgrade operation.

Why do we have seven programs that all do the same thing, but in different ways, with different user interfaces and using different technical terms for the same things (e.g., Channel/Source/Repository for 'a line in sources.list).

Command-line tools

These aren't so important because only an expert user will use them. But it's annoying that they use different databases to store information for their automatic dependency tracking.

Graphical tools

The most obvious entry point is the icon that appears in the notification area; this is provided by update-notifier. This appears whenever updates are available. How does it determine this? By running /usr/lib/update-notifier/apt-check which appears to implement the same logic as running apt-get upgrade. When there are upgradeable packages available, the icon appears.

Clicking on this icon launches a second package manager, update-manager. This performs the equivalent of apt-get upgrade. Already we have a problem: the list of packages offered here is different to that calculated by update-notifier. This is 492863.

If instead we right-click on the icon, we get a menu:

Examining GNOME's System → Administration menu, we find several options:

In the ideal world there would be just PackageKit and the appropriate front-end.