debconf is, to put it simply, "Install Shield Wizards Done Right," and is one of the main advantages of ?DebianVsOtherDistros. There is no debconf executable program. The name 'debconf' simply refers to the package configuration system as a whole.

More specifically, when installing (or upgrading) any single package or a group of packages, debconf asks the packages' configuration questions all at once, and stores the user/admin preferences in a database. Later as the packages are installing, their scripts use the configuration preferences in the database to generate configuration files and otherwise do adimnistrative tasks (e.g. set up servers to start or not start, install other software such as libdvdcss, etc.). This saves the hassle of editing configuration files by hand, and also of waiting for each individual package to install before responding to certain configuration questions.

The User/administrator can configure the following aspects of debconf behavior by running dpkg-reconfigure debconf:

In the same way, you can configure debconf-enabled packages by typing dpkg-reconfigure packagename and answering configuration questions.


Future Plans

In the future debconf is pictured to be an even more flexible and easy to use and maintain configuration management system by using the formidable config4gnu ConfigurationHandling functionality. Additionaly config4gnu should also provide access to the debconf database as a debconf frontend and in this way allow all config4gnu frontends to save a update/grade safe state on debian systems. http://config4gnu.sourceforge.net

Unfortunately config4gnu is not yet ready for use in Debian. But when it becomes mature, its planned features of extending configuration management flexibility beyond that of debconf and harmonizing configuration management with other distributions should make it well worth adoption in Debian. In the meantime, debconf remains a stable production-ready uniform front-end for configuring nearly 800 Debian packages.