debconf es una utilidad de software para realizar tareas de configuración de todo el sistema en sistemas operativos tipo Unix . Está desarrollada para la distribución Linux Debian y está estrechamente integrada con el sistema de gestión de paquetes de Debian, dpkg .
Cuando se instalan los paquetesdpkg-reconfigure
, debconf le hace preguntas al usuario que determinan el contenido de los archivos de configuración de todo el sistema asociados con ese paquete. Después de la instalación del paquete, es posible volver atrás y cambiar la configuración de un paquete mediante el programa u otro programa como Synaptic .
El diseño de debconf permite agregar front-ends para responder preguntas de configuración de manera modular, y existen varios, como uno para dialog , uno para readline , uno que usa un editor de texto , uno para KDE , uno para GNOME , [3] una API front-end de Python , etc.
La implementación original de debconf está en Perl . Durante el desarrollo de Debian-Installer , se desarrolló una nueva implementación en C , que se llama cdebconf . La nueva implementación actualmente sólo se utiliza en el instalador, pero se pretende que eventualmente reemplace por completo a la original. Ambas implementaciones utilizan el mismo protocolo para la comunicación entre el front-end de debconf y el código del cliente ("confmodule"); se trata de un protocolo simple basado en líneas similar a los protocolos comunes de Internet .
Debconf no configura físicamente ningún paquete, sino que le pregunta al usuario ciertas preguntas de configuración almacenadas en el archivo .templates, bajo la dirección de los scripts de mantenimiento del paquete (.config, .postinst, etc.). Normalmente, el script .config utiliza debconf para hacer preguntas, mientras que .postinst aplica cambios de configuración al paquete descomprimido en respuesta a las respuestas; sin embargo, esto puede variar debido a requisitos técnicos. Las respuestas del usuario a las preguntas de configuración realizadas por debconf se almacenan en caché en la base de datos de debconf.