dpkg es el programa base para manejar paquetes Debian en el sistema. Si tiene paquetes .deb, dpkg es lo que permite instalar o analizar sus contenidos. Pero este programa sólo tiene una visión parcial del universo Debian: sabe lo que está instalado en el sistema y lo que sea que se le provee en la línea de órdenes, pero no sabe nada más de otros paquetes disponibles. Como tal, fallará si no se satisface una dependencia. Por el contrario, herramientas como apt y aptitude crearán una lista de dependencias para instalar todo tan automáticamente como sea posible.
debconf es una utilidad para realizar tareas en sistemas de Unix. Fue desarrollado para la distribución Debian GNU/Linux, y está integrada con el sistema de gestión de paquetes, dpkg.
Al instalar paquetes, debconf hace preguntas al usuario usando las repuestas para configurar de forma automática el nuevo paquete. El nivel de las preguntas hechas depende en como está configurado debconf.
En los procesos de instalación de paquetes mediante dpkg o apt, en ocasiones, el proceso de instalación nos pide algunos parámetros necesarios para la instalación. Para esto, debconf tiene un mecanismo denominado templates que permite definir el cuestionario, mediante un archivo de configuración.
Este archivo lo vas a en contrar con el [nombre del paquete] y la extensión .templates en la carpeta /var/lib/dpkg/info, con una infraestructura similar a esta:
Template: passbolt/mysql-configuration Type: boolean Choices: true, false Default: false Description: Create a passbolt database on the local mysql? . This script will guide you to create an empty database . and grant permissions to a user for passbolt to use. Template: passbolt/mysql-username Type: string Default: root Description: MySQL administator username: Please, provide a username with enough privileges . to create databases on your mysql server.