Provided by: debconf-doc_1.5.87ubuntu1_all 

NOME
debconf - Sistema de configuração de pacotes Debian
DESCRIÇÃO
Debconf é um sistema de configuração para pacotes Debian. Existe um comando raramente usado chamado
debconf, documentado em debconf(1)
O debconf disponibiliza uma interface consistente para configurar pacotes, permitindo-lhe escolher entre
vários frontends de interface de utilizador. Suporta a pré-configuração de pacotes antes deles serem
instalados, o que permite que grandes instalações e actualizações lhe perguntem toda a informação
necessária de avanço e depois façam o trabalho enquanto você faz outras coisas. Permite-lhe, se estiver
com pressa, saltar as questões menos importantes e informação instala um pacote (e o revisita mais
tarde).
Pré-configurando pacotes
O debconf pode configurar os pacotes antes de eles estarem instalados no seu sistema. Isto é útil porque
permite que todas as questões que os pacotes vão perguntar seja perguntadas no princípio da instalação,
então o resto da instalação pode prosseguir enquanto você vai beber um café.
Se você usa o apt (versão 5.0 ou posterior), e tem o apt-utils instalado, cada pacote que o apt instala
será automaticamente pré-configurado. Isto é controlado via /etc/apt/apt.conf.d/70debconf
Por vezes você pode desejar pré-configurar um pacote manualmente, quando não está a instalá-lo com o apt.
Pode usar o dpkg-preconfigure(8) para isso, apenas passe-lhe os nomes de ficheiros dos pacotes que deseja
pré-configurar. Você precisa do apt-utils instalado para isto funcionar.
Reconfigurando pacotes
Suponha que instalou um pacote e respondeu às questões do debconf, mas agora que o usou durante algum
tempo, percebe que quer voltar atrás e alterar algumas das suas respostas. No passado, a reinstalação do
pacote era muitas vezes o caminho a seguir nesta situação, mas quando reinstala o pacote, o debconf
parece lembrar-se que você já respondeu às questões, e não as pergunta de novo (isto é uma
característica).
Felizmente, o debconf facilita a reconfiguração de qualquer pacote que o use. Suponha que quer
reconfigurar o próprio debconf. Como root, execute:
dpkg-reconfigure debconf
Isto irá perguntar-lhe todas as perguntas que viu quando o debconf foi instalado pela primeira vez. Pode
também fazer-lhe outras perguntas, pois pergunta até questões de baixa prioridade que podem ter sido
ignoradas quando o pacote foi instalado. Você pode também usá-lo em qualquer outro pacote que use
debconf.
Frontends
Uma das características únicas do debconf é que a interface que lhe apresenta é uma de muitas, que podem
ser trocadas quando deseja. Existem muitos frontends do debconf disponíveis:
dialog O frontend predefinido, isto usa os programas whiptail(1) ou dialog(1) para lhes mostrar
perguntas. Funciona em modo de texto.
readline
O frontend mais tradicional, isto parece mesmo com o que a configuração da Debian sempre foi: uma
série de questões, escritas na consola usando texto simples, e mostra os "prontos" usando a
biblioteca readline. Até suporte acabamentos com a tecla tab. O pacote libterm-readline-gnu-perl é
fortemente recomendado se escolher usar este frontend; o módulo predefinido do readline não
suporta chamadas ao utilizador (prompt) com valores predefinidos. No mínimo você precisa do pacote
perl-modules instalado para usar este frontend.
Este frontend tem algumas teclas de atalho especiais. Pageup (ou ctrl-u) irá voltar para a questão
anterior (se isso for suportado pelo pacote que usa o debconf), e pagedown (ou ctrl-v) irá saltar
em frente para a próxima questão.
Este é o melhor frontend para trabalho de administração remota por uma ligação lenta, ou para
aqueles que estão confortáveis com o unix.
noninteractive
Este é o anti-frontend. Nunca interage consigo de modo algum, e faz com que as respostas
predefinidas sejam usadas por todas as questões. Pode enviar mails de erro para o root, mas é só;
caso contrário é completamente silencioso e discreto, um frontend perfeito para instalações
automáticas. Se você está a usar este frontend e precisa de respostas não predefinidas para as
questões, você precisa de pré-semear a base de dados do debconf, veja a secção em baixo em
Instalação de 'Pacotes Não Acompanhada' para mais detalhes.
gnome Isto é uma GUI X moderna que usa as bibliotecas gtk e gnome. Claro que necessita de um DISPLAY
válido para funcionar; o debconf irá cair para para outros frontends se este não puder funcionar.
Note que este frontend requer que tenha o pacote libgtk3-perl instalado.
kde Este frontend disponibiliza uma GUI X moderna baseada na plataforma KDE. Claro que você precisa de
um DISPLAY para usar este frontend e você tem de instalar o pacote debconf-kde-helper. O frontend
irá cair para dialog se algum dos pre-requisitos não estiver satisfeito.
editor Isto é para aqueles fanáticos que têm de fazer tudo num editor de texto. Executa o seu editor num
ficheiro que parece algo como um ficheiro de configuração típico do unix, e você edita o ficheiro
para comunicar com o debconf. O autor do debconf prefere não comentar sobre as circunstâncias que
levaram à criação deste frontend.
web
Este frontend actua como um servidor web, onde você se liga com o seu navegador web, para explorar
as perguntas e responder a elas. Tem muito a prometer, mas ainda precisa de muito trabalho. Quando
este frontend arranca, escreve a localização para onde deve apontar o seu navegador web. Por
razões de segurança, você tem que executar o navegador web na mesma máquina que está a configurar.
Tenha sempre em mente que este não é um frontend muito seguro. Qualquer pessoa que tenha acesso ao
computador quando está a ser configurado pode aceder ao servidor web e configurar coisas enquanto
este frontend está em execução. Portanto isto é mais uma prova de concepção que outra coisa.
Você pode mudar o frontend predefinido que o debconf usa ao reconfigurar o debconf. Por outro lado, se
apenas deseja mudar o frontend por um minuto, você pode definir a variável de ambiente DEBIAN_FRONTEND
para o nome do frontend a usar. Por exemplo:
DEBIAN_FRONTEND=readline apt-get install slrn
Os comandos dpkg-reconfigure(8) e dpkg-preconfigure(8) também lhe permitem passar --frontend= para eles,
seguido do frontend que deseja que estes usem.
Note que nem todos os frontends irão funcionar em todas as circunstâncias, Se um frontend falhar ao
arrancar por alguma razão, o debconf irá escrever uma mensagem a explicar porquê, e irá 'cair' para o
frontend semelhante seguinte.
Propriedades
Outra funcionalidade agradável do debconf é que as perguntas que lhe faz são priorizadas. Se você não
deseja ser incomodado com todos os pequenos detalhes, você pode configurar o debconf para apenas
perguntar as questões mais importantes. Por outro lado, se você é um viciado em controle, pode fazê-lo
mostrar todas as perguntas. Cada pergunta tem uma prioridade. A ordem de importância em sequência
crescente:
low Questões muito triviais que têm predefinições que irão funcionar na vasta maioria dos casos.
medium Questões normais que têm predefinições razoáveis.
high Questões que não têm uma predefinição razoável.
critical
Questões que você precisa realmente de ver (ou então nada feito).
Apenas as questões com uma prioridade igual ou maior que a prioridade que escolheu lhe serão mostradas.
Você pode definir o valor da prioridade ao reconfigurar o debconf, ou temporariamente passando
--priority= seguido do valor aos comandos dpkg-reconfigure(8) e dpkg-preconfigure(8), ou ao definir a
variável de ambiente DEBIAN_PRIORITY.
Base de Dados de Backend
O debconf usa base de dados de backend muito flexível e potencialmente complicada para armazenar dados
como as respostas às questões. O ficheiro /etc/debconf.conf é usado para configurar esta base de dados.
Se você precisar de definir algo complicado, como fazer o debconf ler uma base de dados remota para obter
predefinições, com sobreposições locais, leia o manual debconf.conf(5) para todos os detalhes mais
chatos. Geralmente, a base de dados de backend está localizada em /var/cache/debconf/.
Instalação de Pacotes Não Acompanhada
Se você tem muitas máquinas para gerir irá por vezes deparar-se com a necessidade de executar uma
instalação não acompanhada ou a actualização de pacotes em muitos sistemas, onde as respostas
predefinidas de algumas perguntas de configuração não são aceitáveis. Há muitas maneiras de fazer isto;
todas envolvem definir uma base de dados e fazer o debconf usá-la para obter as respostas que você quer.
Você deveria mesmo ler debconf.conf(5) antes desta secção, pois precisa de compreender como funcionam as
bases de dados do debconf.
A maneira mais fácil de definir uma base de dados é instalar os pacotes em uma máquina e responder às
suas perguntas como usualmente. Ou você pode usar dpkg-preconfigure(8) para configurar um conjunto de
pacotes sem realmente os instalar. Ou você pode até decidir escrever uma base de dados debconf em texto
simples manualmente ou algo do género.
Após ter a base de dados, você precisa descobrir como fazer os sistemas remotos usá-la. Isto claro que
depende da configuração desses sistemas e quais são os tipos de bases de dados que eles têm definido para
usar.
Se você está a usar uma base de dados debconf LDAP, uma rede inteira de máquinas debian podem ter as
questões de instalação de qualquer ou todos os pacotes respondidas automaticamente por um único servidor
LDAP.
Mas talvez você esteja a usar algo um pouco mais fácil como, digamos, a configuração de base de dados
debconf predefinida, ou você apenas não quer que os seus sistemas remotos usem LDAP a toda a hora. Neste
caso a melhor aproximação é configurar temporariamente os sistemas remotos para empilhar a sua base de
dados por baixo das já existentes e próprias bases de dados, para que puxem valores predefinidos dela. O
debconf oferece duas variáveis de ambiente, DEBCONF_DB_FALLBACK e DEBCONF_DB_OVERRIDE, para tornar mais
fácil fazer isto na hora. Aqui está um exemplo de utilização:
cat /var/cache/debconf/config.dat | \
ssh root@target "DEBIAN_FRONTEND=noninteractive \
DEBCONF_DB_FALLBACK=Pipe apt-get upgrade"
Isto faz com que o debconf na máquina remota leia os dados que são canalizados pela ligação ssh e os
interprete como uma base de dados debconf em formato de texto. Depois usar essa base de dados como uma
base de dados de reserva (fallback) -- uma base de dados só de leitura que é questionada por respostas a
perguntas se a base de dados debconf principal do sistema não tiver as respostas.
Aqui está outro modo de usar a variável de ambiente DEBCONF_DB_FALLBACK:
ssh -R 389:ldap:389 root@target \
"DEBCONF_DB_FALLBACK='LDAP{host:localhost}' apt-get upgrade"
Aqui é usado ssh para configurar uma ligação LDAP em túnel e correr o debconf. Ao debconf é dito para
usar o servidor LDAP como base de dados fallback. Note o uso de "{host:localhost}" para configurar como o
debconf acede à base de dados LDAP ao disponibilizar o campo "host" com um valor de "localhost".
Aqui está outro método:
scp config.dat root@target:
ssh root@target "DEBCONF_DB_FALLBACK='File{/root/config.dat}' apt-get upgrade
Aqui você copia a base de dados com scp, e depois usa ssh para fazer com que o debconf use o ficheiro que
copiou. Isto ilustra um atalho que pode usar nos parâmetros DEBCONF_DB_FALLBACK -- se um nome de campo
for deixado, usará por predefinição "filename".
Há apenas um problema com estes usos do parâmetro DEBCONF_DB_FALLBACK. Enquanto a base de dados fallback
pode disponibilizar respostas a questões que as outras bases de dados debconf nunca viram, é apenas
questionada como uma reserva; depois das outras bases de dados. Se você precisa de sobrepor
temporariamente um valor existente na máquina remota, deve usar a variável DEBCONF_DB_OVERRIDE em vez
desta. Tal como DEBCONF_DB_FALLBACK, define uma base de dados temporária, mas esta base de dados é
consultada antes das outras, e pode ser usada para sobrepor valores existentes.
Desenvolvendo para Debconf
Programadores de pacotes e outros que desejam desenvolver pacotes que usam debconf devem ler
debconf-devel(7).
Resumindo, o debconf comunica com scripts do maintainer ou outros programas via entradas e saídas
standard, usando uma simples linguagem de comandos orientada a linhas semelhante à usada por protocolos
comuns de internet como o SMTP. Os programas usam este protocolo para pedir ao debconf para mostrar
questões ao utilizador, e recolher as respostas dos utilizadores. As próprias questões são definidas num
ficheiro separado, chamado o ficheiro "templates", o qual tem um formato não muito diferente de um
ficheiro de controle debian.
Os pacotes debian que usam debconf tipicamente disponibilizam ambos; um ficheiro de templates e um script
de configuração (executado para pré-configurar o pacote) na secção de meta-dados de control do pacote.
AMBIENTE
DEBIAN_FRONTEND
Usado para alterar temporariamente o frontend que o debconf usa. Veja em cima.
DEBIAN_PRIORITY
Usado para alterar temporariamente a prioridade mínima das questões que o debconf irá mostrar.
Veja em cima.
DEBCONF_DEBUG
Liga a saída de depuração no erro standard. Pode ser definido para um nome de instituição ou uma
expressão regular que corresponda a um nome de instituição (tal como '.*' para gerar toda a
informação de depuração). Os nomes de instituições incluem:
user Informação de depuração de interesse a um utilizador do debconf.
developer
Informação de depuração de interesse para um programador de pacote.
db Informação de depuração acerca da base de dados backend.
DEBCONF_NOWARNINGS
Definir para "yes" para desactivar alguns avisos que o debconf pode mostrar. Não suprime a
exibição de erros fatais.
DEBCONF_TERSE
Definir para "yes" para activar o modo "terse", no qual os frontends do debconf cortam na exibição
de detalhes o máximo possível.
DEBCONF_DB_FALLBACK
Empilha uma base de dados após as bases de dados normalmente usadas, para que a use como uma
reserva de onde obter informação de configuração. Veja "Instalação de Pacotes Não Acompanhada" em
cima. Se o valor da variável for o nome de uma base de dados existente em debconf.conf, então essa
base de dados será usada. Caso contrário, a variável de ambiente pode ser usada para configurar
uma base de dados na hora, ao dizer-lhe o tipo de base de dados, e passar opcionalmente definições
de campo:valor, dentro de chavetas após o tipo. Os espaços são usados para separar os campos,
portanto você não pode especificar um valor que tenha espaços em branco.
Assim, isto usa o fallbackdb em debconf.conf:
DEBCONF_DB_FALLBACK=fallbackdb
Enquanto isto define uma nova base de dados do tipo File, e diz-lhe um nome de ficheiro a usar e desliga
os backups:
DEBCONF_DB_FALLBACK=File{Filename:/root/config.dat Backup:no}
E de forma abreviada, isto define uma base de dados do tipo File com um nome de ficheiro:
DEBCONF_DB_FALLBACK=File{/root/config.dat}
Note que se uma base de dados de emergência (fallback) for definida na hora, irá ficar em apenas-leitura
por predefinição.
DEBCONF_DB_OVERRIDE
Empilha uma base de dados antes das bases de dados usadas normalmente, para que possa sobrepor
valores delas. O valor da variável funciona do mesmo modo que o valor de DEBCONF_DB_FALLBACK.
DEBCONF_DB_REPLACE
Usa uma base de dados fornecida em vez das bases de dados normalmente usadas. isto pode ser útil
para testes com uma base de dados separada sem ter que criar um debconf.conf separado, ou para
evitar bloquear as bases de dados normais.
DEBCONF_SYSTEMRC
Se esta variável de ambiente estiver definida, o debconf irá ignorar o ficheiro ~/.debconfrc do
utilizador, e em vez deste, usar o do sistema. Se estiver definida para o nome de um ficheiro
regular, o debconf irá usar esse ficheiro em preferência dos ficheiros de configuração do sistema.
DEBCONF_FORCE_DIALOG
Se esta variável de ambiente estiver definida, o debconf irá usar o dialog em preferência do
whiptail para o frontend do diálogo.
DEBCONF_FORCE_XDIALOG
Se esta variável de ambiente estiver definida, o debconf irá usar o Xdialog em preferência do
whiptail para o frontend de diálogo.
DEBCONF_NONINTERACTIVE_SEEN
Definido para "true" fará definir a bandeira "visto" nas perguntas feitas no frontend
noninteractive.
BUGS
Provavelmente alguns, existe muito código aqui.
Se você preencher um relatório de bug, certifique-se que inclui a seguinte informação:
* O frontend do debconf que estava a usar quando o problema ocorreu
* O que você fez para despoletar o problema.
* O texto completo de quaisquer mensagens de erro. Se você consegue reproduzir o bug, faça-o com
DEBCONF_DEBUG='.*' definido e exportado. Isto acelera imenso a depuração.
VEJA TAMBÉM
debconf.conf(5), debconf-devel(7), dpkg-preconfigure(8), dpkg-reconfigure(8), debconf(1),
AUTOR
Joey Hess <joeyh@debian.org>
TRADUÇÃO
Américo Monteiro <a_monteiro@netcabo.pt>, 2010,2012
Por favor comunique quaisquer erros de tradução para a_monteiro@netcabo.pt, l10n@debianpt.org, ou submeta
um relatório de bug contra o pacote debconf.
DEBCONF(7)