NOME
debconf − Sistema de configuração de pacotes Debian
DESCRIÇÂO
Debconf é um sistema de configuração para pcotes Debian. Não existe um comando chamado "debconf".
Debconf oferece uma interface consistente para a configuração de pacotes, perimitndo que você escolha entre diversos frontends a interface com o usuário. Ele suporta pré-configuração de pacotes antes que os mesmos sejam instalados, o que permite que grandes instalações e atualizações lhe pegunte toda a informação necessária antes e então continue a instalação enquanto você faz qualquer outra coisa. Ele lhe permite, se você está com pressa, pular questões e informação menos importantes enquanto instala um pacote (e revisitar esta questão posteriormente).
Pré-configurando pacotes
Debconf pode configurar pacotes antes mesmo que eles sejam instalados em seu sistema. Isto é útil porque permite que todas as questões que os pacotes fariam sejam feitas no início de uma instalação, assim o restante da instalação pode prosseguir enquanto você sai para tomar uma xícara de café.
Se você usao o apt (versão 0.5 ou superior) e possui o pacote apt-utils instalado, cada pacote que o apt instala será automaticamente pré-configurado. Isto é controlado via /etc/apt/apt.conf.d/70debconf
Ás vezes você pode querer pré-configurar um pacote manualmente, quando você não está instalando o mesmo com o apt. Você pode usar dpkg-preconfigure (8) para fazer isso, somente passe para o dpkg-preconfigure os nomes de arquivos dos pacotes que você quer pré-configurar. Você precisará do apt-utils instalado para que isso funcione.
Reconfigurando pacotes
Suponha que você instalou o pacote e respondeu as questões do debconf, mas agora que você já o utilizou por um tempo, você decidiu que você quer voltar atrás e mudar algumas de suas respostas. Antigamente, reinstalar o pacote era geralmente o que teria de ser feito quando você se encontrava nesta situação, mas quando você reinstala um pacote, o debconf parece se lembrar que você respondeu as questões e não as pergunta novamente (isto é um recurso).
Felizmente, o
debconf faz com que seja fácil reconfigurar qualquer
pacote que o utilize. Suponha que você quer
reconfigurar o próprio debconf. Somente execute, como
root:
dpkg-reconfigure debconf
Isto irá lhe perguntar todas as questões que você viu quando o debconf fo instalado da primeira vez. Também poderá lhe perguntar outras questões, uma vez que são perguntadas até mesmo questões de baixa prioridade as quais podem ter sido omitidas quando o pacote foi instalado. Você pode usar isso em qualquer outro pacote que use o debconf, da mesma forma.
Frontends
Um dos recursos únicos do debconf é que a intrface que o mesmo apresenta a você é somente uma de muitas e que pode ser mudada à vontade. Existem muitos frontends debconf disponíveis :
dialog |
O frontend padrão, usa os programas whiptail (1) ou dialog (1) para lhe exibir as questões. Funciona em modo texto. |
readline
O frontend mais tradicional, é parecido com como a configuração Debian sempre foi: uma série de questões, impressas no console usando texto puro, e perguntas feitas usando a biblioteca readline. Suporta até mesmo complemento de digitação usando a tecla tab. (Instale o pacote libterm-readline-gnu-perl para ter a maioria do suporte readline.)
Este frontend possui algumas teclas de atalho especiais. Seta para cima (ou ctrl-u) voltará para a questão anterior (caso isso seja suportado pelo pacote que está uando debconf) e seta para baixo (ou ctrl-v) irá pular para a próxima questão.
Este é o melhor frontend para administração remota sob uma conexão lenta ou para aqueles que estão confortáveis com o unix.
noninteractive
Este é o anti-frontend. Ele nunca irá interagir com você e fará com que as repostas padrão sejam usadas para todas as questões. Ocasionalmente enviará e-mail para a conta root com o conteúdo das mensagens que o pacote deveria exibir, mas é só; por outro lado, é completamente silencioso e não intrusivo, um frontend perfeito para instalações automáticas.
gnome |
Este é uma GUI X moderna que utiliza as bibliotecas gtk e gnome. É claro, requer um DISPLAY válido para funcionar; o debconf utilizará outros frontends caso este não possa ser usado. Note que este frontend requer o pacote libgnome-perl instalado. | ||
editor |
Este é para queles fanáticos que tem que fazer tudo em um editor de textos. Ele executa seu editor em um arquivo que parece com um arquivo de configuração unix típico e você edita o arquivo para se comunicar com o debconf. O autor do debconf usou a quinta emenda em relação as circunstâncias que levaram este frontend a ser escrito. | ||
web |
Este frontend funciona como um servidor web, ao qual você se conecta com seu navegador web, para navegar pelas questões e respondê-las. Possui uma boa promessa, mas é um pouco pesado. Quando este frontend inicia, ele imprime a localização para a qual você deve apontar seu navegador. Você prcisa executar o navegador web na mesma máquina que você está configurando, por razões de segurança. |
Tenha em mente que este não é um frontend mut seguro. Qualquer pessoa com acesso ao computador sendo configurado pode atualmente acessar o servidor web e configurar as coisas enquanto este frontend está em execução. Por isso ele é mais uma prova de conceito do que qualquer outra coisa.
Você pode
mudar o frontend padrão que o debconf usa
reconfigurando o debconf. Por outro lado, se você quer
somente mudar o frontend por um minuto, você pode
definir a variável de ambiente DEBIAN_FRONTEND para o
nome do frontend que você quer usar. Por exemplo :
DEBIAN_FRONTEND=readline apt-get install slrn
Os comando dpkg-reconfigure (8) e dpkg-preconfigure (8) também permitem que lhes sejam passados --frontend= seguido pelo frontend que você quer usar.
Note que nem todos os frontends funcionaram em todas as circunstâncias. Se um frontend falhar ao ser iniciado por alguma razão, o debconf irá imprimir uma mensagem explicando a razão e irá mudar para o próximo frontend mais similar.
Prioridades
Outro recurso legal do debconf é que as questões que ele lhe pergunta são priorizadas. Se você não quer ser incomodado sobre cada pequena coisa, você pode configurar o debconf para soment lhe perguntar as questões mais importantes. Por outro lado, se você é um maluco por controle, você pode fazer com que todas as questões sejam exibidas. Cada questão possui uma prioridade. Em ordem crescente de importância :
baixa |
Qestões bem triviais que possuem respostas padrão que funcionarão para a grande maioria dos casos. | ||
média |
Questões normais que possuem respostas padrão razoáveis. | ||
alta |
Questões que não possuem uma resposta padrão razoável. |
crítica
Para coisas que provavelmente quebrarão seu sistema sem intervenção do usuário.
Somente questões com uma prioridade igual ou mairo que a prioridade que você escolheu lhe serão exibidas. Você pode definir o valor da prioridade reconfigurando o debconf ou temporariamente passando --priority= seguido pelo valor para os comandos dpkg-reconfigure (8) e dpkg-preconfigure (8) ou definindo a variável de ambiente DEBIAN_PRIORITY.
Backend de Base de Dados
O Debconf utiliza um backend de base de dados bem flexível e complicado para o armazenamento de dados como respostas para as perguntas. O arquivo /etc/debconf.conf é usado para configurar este base de dados. Se você precisa configurar algo complicado, como fazer o debconf ler uma base de dados remota para obter os padrões, sem sobreescritas locais, leia a página de manual debconf.conf (5) para todos os detalhes sangrentos.Geralmente, o backend de base de dados está localizado em the backend database is located in /var/cache/debconf/
Desenvolvendo para o Debconf
Desenvolvedores de pacotes e outros que queiram usar o debconf devem ler o Tutorial dos Programadores Debconf (/usr/share/doc/debconf-doc/tutorial*).
Resumidamente, o debconf se comunica com os scripts dos mantenedores ou outros programas através da entrada e saída padrão, usando uma linguagem de comando simples orientada a linha similar aquelas usadas por muitos protocolos internet como o SMTP. Os programas usam este protocolo para exibir questões ao usuário e recuperar as respostas dos usuários. As questões são definidas em um arquivo separado, chamado de "arquivo modelo" (ou template file), o qual possui um formato não muito diferente de um arquivo de controle debian.
Pacotes Debian que usam o debconf tipicamente oferecem ambos um arquivo de modelo e um script "config" (executado para pré-configurar o pacote) na seção de controle de metadados do pacote.
AMBIENTE
DEBIAN_FRONTEND
Usado para mudar temporariamente o frontend debconf utilizado. Veja acima.
DEBIAN_PRIORITY
Usado para mudar temporariamente o prioridade mínima das questões que o debconf exibirá. Veja acima.
DEBCONF_DEBUG
Habilita a saída da depuração na saída padrão. Pode ser definido para o nome de uma facility ou uma expressão regular que case com o nome da facility (como ’.*’ para mostrar toda a informação de depuração). Os nomes de facility incluem :
user |
Informação de depuração de interesse para um usuário debconf. |
developer
Informação de depuração de interesse para um desenvolvedor de pacotes.
db |
Informação de depuração sobre o backend de base de dados. |
DEBCONF_TERSE
Defina como "yes" para habilitar o modo resumido, no qual os frontends debconf reduzem a verbosidade o máximo possível.
BUGS
Provavelmente muitos, existe muito código aqui.
Caso você reporte um bug, certifique-se de incluir a seguinte informação :
* |
O frontend debconf que você estava usando quando o problema ocorreu | ||
* |
O que você fez para produzir o problema. | ||
* |
O texto completo de quaisqer mensagens de erro. Caso você possa reproduzir o bug, faça isso com DEBCONF_DEBUG=’.*’ definido e inclua. Isto acelera muito a depuração. |
VEJA TAMBÉM
debconf.conf(5), dpkg-preconfigure(8), dpkg-reconfigure(8),
AUTOR
Joey Hess <joeyh [AT] debian.org>