Aptdaemon

February 1, 2009 - 2 minute read -
floss ubuntu aptdaemon packagekit

I am glad to announce aptdaemon: It is a DBus controlled and PolicyKit using package management daemon build on python-apt.

If the above description reminds you of PackageKit you won’t be completely wrong. Aptdaemon reuses some design concepts and code from PackageKit. As the author of the PackageKit apt backend I run into some policy problems: PackageKit only allows non-interactive actions. So there is no support for debconf, CDROMs and configuration conflict handling. Nevertheless thanks to Richard Hughes for his efforts on making package management less of a pain.

Aptdaemon already provides the following features:

  • DBus interface with DBus activation and idle time out
  • PolicyKit authorization allowing e.g. desktop user to update the cache (check for updates) passwordlessly
  • Transaction based: Atom actions, e.g. installing packages, are queued for processing
  • Controlling terminal to apt and dpkg calls. Furthermore a non-interactive fallback mode
  • Install packages from repositories or local file system, remove packages, update the cache and (safe) upgrade your system
  • Canceling of downloads and not yet processed transactions
  • Localisation
  • Python client library and GTK widgets
  • An example GTK (aptd-gtk-demo) and command line application (aptdcon)

Here you can see a screencast showing most of the above issues:

The project is hosted at Launchpad: http://launchpad.net/aptdaemon

To get the latest code type:

bzr branch lp:aptdaemon

Ubuntu Jaunty packages can be found in the PPA. A package for Debian can be found here, but you need python-apt from experimental.

There are still a lot of things to do and work on. Especially integrating a not yet written DBus empowered debconf frontend.

Feel free to submit comments, bugs and code!