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:
- Ask again: debconf by default does not re-ask old configuration questions during upgrade of a package, instead it uses old answers to generate new versions of configuration files, providing seamless upgrade capability. But this behavior can be changed so such questions are always asked (with old answers provided as defaults).
- Front-end: debconf can ask its questions using interfaces from plain text to Dialog (default) to GNOME control applet.
- Priority: all questions are assigned priority levels, either low, medium, high or critical, and the user/admin can decide below what priority level (s)he would like debconf to use the default configuration answer without asking (default medium).
In the same way, you can configure debconf-enabled packages by typing dpkg-reconfigure packagename and answering configuration questions.
What about taking debconf yet another step furher and universal by combination with the formidable config4gnu configuration management system? Providing superior ConfigurationHandling also in the running system. http://config4gnu.sourceforge.net
Unfortunately config4gnu is not close to being ready for use in Debian, as it has not had a first release and has made little progress since February, 2003. But if/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.
