Debconf (software package)
Encyclopedia
debconf is a software utility for performing system-wide configuration tasks on Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 operating systems. It is developed for the Debian GNU/Linux
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

 distribution
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...

, and is closely integrated with Debian's package management system, dpkg
Dpkg
dpkg is the software at the base of the Debian package management system. dpkg is used to install, remove, and provide information about .deb packages....

.

When packages are being installed, debconf asks the user questions which determine the contents of the system-wide configuration files associated with that package. After package installation, it is possible to go back and change the configuration of a package by using the dpkg-reconfigure program, or another program such as Synaptic
Synaptic Package Manager
Synaptic is a computer program which is a GTK+ graphical user interface front-end to the Advanced Packaging Tool for the Debian package management system. Synaptic is usually used on systems based on deb packages but can also be used on systems based on RPM packages...

.

The design of debconf allows for front-ends
Front-end and back-end
Front end and back end are generalized terms that refer to the initial and the end stages of a process. The front end is responsible for collecting input in various forms from the user and processing it to conform to a specification the back end can use...

 for answering configuration questions to be added in a modular way, and there exist several, such as one for dialog
Dialog (software)
Dialog is an application used in shell scripts which displays text user interface widgets. It uses the curses or ncurses library. The latter provides users with the ability to use a mouse, e.g., in an xterm....

, one for readline, one that uses a text editor
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....

, one for KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

, one for GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

 , a Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

 front-end API, etc.

The original implementation of debconf is in Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

. During the development of Debian-Installer
Debian-Installer
Debian-Installer is the installation program for Debian. It was originally written for the Debian 3.1 release , although the first version of a Linux distribution it was used with was Skolelinux Venus ....

, a new implementation in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 was developed, which is named cdebconf. The new implementation is currently only used in the installer, but is intended to eventually replace the original entirely. Both implementations make use of the same protocol for communication between the debconf front-end and the client code ("confmodule"); this is a simple line-based protocol similar to common Internet
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...

protocols.

Debconf does not physically configure any packages, but asks the user certain configuration questions stored in the .templates file, under the direction of the package's maintainer scripts (.config, .postinst, etc.). Typically, the .config script uses debconf to ask questions, while .postinst applies configuration changes to the unpacked package in reaction to the answers; however, this can vary due to technical requirements. The user's answers to the configuration questions asked by debconf are cached in debconf's database.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK