joeyh@debian.org
Copyright © 1999 , 2000 by Joey Hess
This text is distributed according to the General Public License.
This is a guide to debconf, from the user's perspective. [1] Debconf is the new user interface that is popping up in increasing numbers of packages as you install them with dpkg. It provides a consistent interface to configuring packages, and lets you do some neat things you couldn't before. This guide will show you some of them. But best of all, it ensures that you only see each question once, not over and over each time you install a package, like you might have in the past.
But first, please realize that debconf is still under development. I introduce new bugs from time to time. If debconf is misbehaving, please check the debconf bug list before filing a bug. You might also try the latest version of debconf in Incoming, as I have often seen and fixed the bug before you have. Please try to keep my workload down by not filing duplicate bug reports.
If you do file a bug report, tell me the frontend you were using when the problem occurred, what you did to trigger the problem, and paste any error messages you can into the bug report.
Debconf can configure packages before they are even installed onto your system. This is useful because it lets all the questions the packages are going to ask be asked at the beginning of an install, so the rest of the install can proceeed while you are away getting a cup of coffee. If you use apt, you have probably already seen this in action. Debconf sets up apt so debconf is run to preconfigure all packages apt installes, just before it installs them.
Sometimes you might want to preconfigure a package by hand, when you're not installing it with apt. You can use the dpkg-preconfigure command to do that, just pass it the filenames of the packages you want to preconfigure.
One of the first things you will probably want to use debconf for is to reconfigure a package. You installed the package, and answered debconf's questions, but now that you've used it a while, you realize you want to go back and change some of your answers. In the past, reinstalling a package was often the thing to do when you got in this situation, but when you reinstall the package, debconf seem to remember you have answered the questions, and doesn't ask them again.
Luckily, debconf makes it easy to reconfigure any package that uses it. Say you want to reconfigure debconf itself. Just run, as root:
This will ask all the questions you saw when debconf was first installed. You can use it on any other package that uses debconf, as well.dpkg-reconfigure --priority=medium debconf
One of Debconf's unique features is that the interface it presents to you is only one of many, that can be swapped in at will.
Table 1. Debconf frontends
frontend | description |
---|---|
dialog | The default frontend, this uses the whiptail or dialog programs to display questions to you. It works in text mode, though it may be a little slow over slow dialup commections. |
text | The most traditional frontend, this looks quite similar
to how Debian configuration always has: a series of questions,
printed out at the console using plain text. It does have
readline support.
|
web | This frontend acts as a web server, that you connect to
with your web browser, to browse the questions and anser them.
It has a lot of promise, but is a little rough so far.
When this frontend starts up, it will print out the location
you should point your web browser to. You have to run the web
browser on the same machine you are configuring, for security
reasons.
|
noninteractive | This is the anti-frontend. It never interacts with you at all, and makes the default answers be used for all questions. It will occasionally mail root with messages the package wanted to display, but that's it; otherwise it is completly silent and unobtrusive, a perfect frontend for automatic installs. |
gtk | This frontend uses the GTK toolkit to interact with you in X, in a pretty GUI. It has a lot of promise, but it too rough right now to be used. |
You can change the default frontend debconf uses by reconfiguring debconf. On the other hand, if you just want to change the frontend for a minute, you can set the DEBCONF_FRONTEND environment variable to the name of the frontend to use. For example:
The dpkg-reconfigure and dpkg-preconfigure commands also let you pass --frontend= to them, followed by the frontend you want them to use.DEBCONF_FRONTEND=text apt-get install slrn
Another nice feature of debconf is that the questions it asks you are prioritized. If you don't want to be bothered about every little thing, you can set up debconf to only ask you the most important questions. On the other hand, if you are a control freak, you can make it show you all questions. Each question has a priority, from this list:
Table 2. Supported priorities
Priority | Description |
---|---|
low | Very trivial items that have defaults that will work in the vast majority of cases. |
medium | Normal items that have reasonable defaults. |
high | Items that don't have a reasonable default. |
critical | Items that will probably break the system without user intervention. |
Only questions with a priority equal to or greater than the priority you choose will be shown to you. You can set the priority value by reconfiguring debconf, or temporarily by passing --priority= followed by the value to the dpkg-reconfigure and dpkg-preconfigure commands.
[1] | For a quick introduction to debconf, see the Introduction to Debconf. For more detailed information about using debconf with packages, see the Debconf Tutorial. |