debconf
Configure Debian package settings during installation
SYNOPSIS
The debconf command itself is not directly invoked by users with options; it refers to the underlying configuration system and its associated utilities.
Common ways to interact with the debconf system include:
dpkg-reconfigure package_name
debconf-get-selections [--installer]
debconf-set-selections [--verbose]
These commands allow users to reconfigure packages, retrieve stored answers, or provide pre-seeded answers respectively, all leveraging the debconf framework.
PARAMETERS
--installer (with debconf-get-selections)
Includes selections that are typically intended for the Debian installer. Useful for generating a pre-seeding file for a new installation.
--verbose (with debconf-set-selections)
Provides more detailed output, explaining what selections are being processed and stored by the command.
DESCRIPTION
debconf is the Debian package configuration management system that provides a standardized and flexible way for packages to ask users questions during installation, upgrade, or removal. It separates the process of installing software from its configuration, allowing system administrators to pre-seed answers, use various user interfaces (frontends), and reconfigure packages post-installation.
Instead of relying on ad-hoc scripts, debconf uses a central database to store answers to configuration questions, ensuring consistency and making re-configuration straightforward. It supports multiple frontends, from full-screen curses interfaces like dialog to simple command-line or even entirely noninteractive modes, making it ideal for both interactive installations and automated deployments. Its design facilitates internationalization and reduces the burden on package maintainers for handling diverse configuration scenarios.
CAVEATS
debconf is a system, not a single executable command with universal options. Direct interaction is usually through related utilities like dpkg-reconfigure or debconf-get/set-selections.
Pre-seeding requires precise formatting of the input file for debconf-set-selections. Incorrect formatting can lead to ignored selections or errors during package installation.
FRONTENDS
debconf supports several user interfaces, known as frontends. The most common are:
dialog (a full-screen text-based interface),
readline (a simpler command-line interface),
noninteractive (for automated scripts, which uses default answers or pre-seeded values),
editor (opens a text editor to configure), and
gnome/kde (graphical interfaces for desktop environments).
PRIORITIES
Each question asked by debconf has a priority (e.g., low, medium, high, critical, important). Users can set a minimum priority level for questions they wish to see. This is typically controlled by the DEBCONF_PRIORITY environment variable or via dpkg-reconfigure options, allowing for quieter installations or more detailed configuration depending on user needs.
PRE-SEEDING
A powerful feature of debconf is pre-seeding, which allows administrators to provide answers to configuration questions in advance. This is crucial for automated installations (e.g., using Debian Installer preseed files) or for quickly setting up multiple identical systems. Pre-seeding files are typically fed to debconf-set-selections.
ENVIRONMENT VARIABLES
The behavior of debconf can be influenced by environment variables:
DEBIAN_FRONTEND: Overrides the default frontend used (e.g., export DEBIAN_FRONTEND=noninteractive
for silent installs).
DEBCONF_PRIORITY: Sets the minimum priority of questions to be displayed (e.g., export DEBCONF_PRIORITY=critical
to only see critical questions).
HISTORY
debconf was introduced to Debian in 1999 to address the growing complexity of package configuration and to provide a consistent user experience. Prior to its existence, package maintainers often wrote custom shell scripts for configuration, leading to inconsistencies and difficulties in automation. debconf standardized this process, allowing for easier internationalization, better automation through pre-seeding, and support for various user interfaces (frontends). It quickly became a core component of the Debian packaging ecosystem, significantly improving the maintainability and user-friendliness of package installations.
SEE ALSO
dpkg-reconfigure(8), debconf-get-selections(1), debconf-set-selections(1), debconf-show(1), debconf-communicate(1), apt(8), dpkg(8)