Manpages

NOME

debconf.conf − arquivo de configuração

NOTE

This translated man page is out of date -- it does not document the LDAP database driver. See the English version for a more current version.

DESCRIÇÃO

Debconf é um sistema de configuração de pacotes Debian. /etc/debconf.conf e ~/.debconfrc são arquivos de configuração que o debconf usa para determinar quais base de dados deve usar. Estas base de dados são usadas para armazenar dois tipos de informação; dados de configuração dinâmicos que o usuários insere na base e dados de modelos (templates) estáticos. O Debconf oferece um backend de base de dados flexível e extensível. Novos controladores podem ser criados com um mínimo de esforço e conjuntos de controladores podem ser combinados de diversas formas.

RESUMO

# Este é um arquivo de configuração de exemplo que é

# suficiente para usar o debconf.

Config: configdb
Templates: templatedb

Name: configdb
Driver: File
Filename: /var/cache/debconf/config.dat

Name: templatedb
Driver: File
Mode: 644
Filename: /var/cache/debconf/templates.dat

FORMATO DO ARQUIVO

O formato deste arquivo é uma série de estrofes, cada uma separada por pelo menos uma linha conpletamente em branco. Linhas de comentário iniciando com um caracter "#" são ignoradas.

A primeira estrofe do arquivos é especial, é usada para configurar o debconf como um todo. Dois campos são requeridos neste primeira estrofe :

Config

Especifica o nome da base de dados a partir da qual carregar dados de configuração.

Templates

Especifica o nome da base de dados a usar para o cache de modelos.

Arquivos adicionais que podem ser incluídos :

Frontend

O frontend que o Debconf deve usar, sobreescrevendo qualquer frontend definido na base de dados debconf.

Priority

A prioridade que o Debconf deve usar, sobreescrevendo qualquer prioridade definida na base de dados debconf.

Admin-Email

O endereço de e-mail para o qual o Debconf deve enviar mensagens caso precise certificar-se que o adminstrador tenha visto uma nota importante. O padrão é "root", mas pode ser definido para qualquer endereço de e-mail válido para o qual a mensagem possa ser enviada. Caso você prefira que o debconf nunca envie e-mail para você, especifique um endereço em branco. Isto pode ser sobreescrito em tempo de execucação com a variável de ambiente DEBCONF_ADMIN_EMAIL.

Debug

Caso definido, fará com que o debconf envia a saída de informação de depuração para a saída de erros padrão. O valor que pode ser configurado é algo como "user", "developer", "db" ou uma expressão regular. Tipicamente, ao invés de definir este valor permanentemente em um arquivo de configuração você desejará habilitar a depuração somente temporariamente e a variável de ambiente DEBCONF_DEBUG pode ser definida para cumprir exatamente isso.

NoWarnings

Caso definida, fará com que o debconf não exiba avisos sobre várias coisas. Isto pode ser sobreescrito em tempo de execução com a variável de ambiente DEBCONF_NOWARNINGS.

Log

Faz com que o debconf grave informação de depuração para o syslog quando ele é executado. O valor para o qual é definido controla o que é logado. Veja Debug acima para uma explicação dos valores que podem ser definidos para controlar o que é logado.

Terse

Caso definido pata "true", faz com que alguns frontends debconf usem um modo de display especial resumido o qual envia como saída o mínimo possível. O padrão é falso. O modo resumido pode ser temporariamente definido através da variável de ambiente DEBCONF_TERSE.

Por exemplo, a primeira estrofe de um arquivo poderia se parecer com :
Config: configdb
Templates: templatedb

Cada estrofe restante no arquivo configura uma base de dados. Uma estrofe base de dados inicia pela nomeação da base de dados :
Name: configdb

Então indica qual controlador de base de dados deverá ser usado para esta base de dados. Veja CONTROLADORES, abaixo, para informações sobre quais controladores estão disponíveis.
Driver: File

Você pode indicar que a base de dados não é essencial para o funcionamento correto do debconf dizendo que a mesma não é requerida. Isto fará com que o debconf se ajeite de alguma maneira caso a base de dados falhe por alguma razão.
Required: false

Você pode marcar qualquer base de dados como somente leitura e o debconf não gravará na mesma.
Readonly: true

Você pode também limitar quais tipos de dados podem ir para uma base de dados com linhas Accept- e Reject-; veja CONTROLES DE ACESSO, abaixo.

O restante de cada estrofe da base de dados é usado para fornecer configuração específica para o controlador. Por exemplo, o controlador Text precisa saber o diretório onde colocar a base de dados, então você poderia dizer:
Filename: /var/cache/debconf/config.dat

CONTROLADORES

Diversos controladores estão disponíveis, e outros podem ser escritos com pouco esforço. Controladores existem em três tipos genéricos. Primeiro, existem controladores reais -- controladores que atualmente acessam e armazenam dados em algum tipo de base de dados, as quais podem estar no sistema de arquivos local ou em um sistema remoto. E então existem meta-controladores que combinam outros controladores juntos para formar sistemas mais interessantes. Vamos começar com o primeiro.

File

Este controlador de base de dados permite ao debconf armazenar uma base de dados completa em um único arquivo texto comum. Isto faz com que seja fácil arquivar, transferir entre máquinás e editar. Este é um dos formatos de base de dados mais compactos em termos de espaço em disco utilizado.

Como ponto negativo, o arquivo inteiro precisa ser lido cada vez que o debconf inicia, e gravá-lo também é lento.

As seguintes opções são coinfiguráveis para este controlador. p

Filename

O arquivo a usar como base de dados. Este é um campo requerido.

Mode

As permissões com as quais criar o arquivo caso ele não exista. O padrão é 600, uma vez que o arquivo pode conter senhas em algumas circunstâncias.

Format

O formato do arquivo. Veja FORMATOS abaixo. O padrão é usar um arquivo como no formato rfc-822.

Backup

Se um backup do arquivo antigo deverá ser feito antes de mudá-lo. O padrão é true (verdadeiro).

Um exemplo de estrofe configurando uma base de dados usando este controlador :

Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat

DirTree

Este controlador de base de dados permite ao debconf armazenar dados em uma hierarquia de estrutura de diretórios. Os nomes dos vários modelos e questões debconf são usados como estão para formar diretórios com arquivos em seu interior. Este formato para a base de dados é o mais fácil de navegar e de se estudar manualmente. Possui velocidades de carregamento e gravação muito boas. Também ocupa tipicamente o maior espaço, uma vez que uma oprção de pequenos arquivos e subdiretórios ocupam espaço adicional.

As seguintes opções são configuráveis para este controlador.

Directory

O diretório no qual colocar os arquivos. Requerido.

Extension

Uma extensão com o qual prefixar os arquivos. Deve ser definida para uma string não vazia; o padrão é ".dat"

Format

O formato do arquivo. Veja FORMATOS abaixo. O padrão é usar um formato como o rfc-822.

Backup

Se um backup do arquivo antigo deve ser feito antes de mudá-lo. O padrão é true.

Uma estrofe de exemplo configurando uma base de dados usando este controlador :

Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt

,B PackageDir

Este controlador de base de dados é um meio termo entre as base de dados File a DirTree. O mesmo usa um diretório, no qual existe (aproximadamente) um arquivo por pacote que utiliza o debconf. Ele é bem rápido e utiliza um pouco mais de espaço do que o controlador de base de dados File.

Este controlador [e configurável da mesma forma como no controlador DirTree e adicionalmente possui:

Mode

As permissões com as quais os arquivos devem ser criados. O padrão é 600 uma vez que os arquivos podem conter senhas em algumas circunstâncias.

Uma estrofe de exemplo configurando uma base de dados usando este controlador:

Name: mydb Driver: PackaDir Directory: /var/cache/debconf/mydb

LDAP

AVISO: Este controlador de base de dados é atualmente experimental. Use-o com cuidado.

Este controlador de base de dados acessa um diretório LDAP para os dados de configuração debconf. Devido a natureza dessas bestas, diretórios LDAP devem ser tipicamente acessados em modo somente-leitura. Isto é porque múltiplos acessos podem acontecer e geralmente é melhor para a consistência dos dados que ninguém tente modificar os dados enquanto isto está acontecendo. É claro, acesso de escrita é suportado para aqueles casos em que você quer atualizar os dados de configuração no diretório.

Para informações sobre a configuração de um servidor LDAP para o debconf leia /usr/share/doc/debconf-doc/README.LDAP (presente no pacote debconf-doc).

Para usar este controlador de base de dados você deve ter o pacote libnet-ldap-perl instalado. O Debconf sugere este pacote, mas não depende do mesmo.

Por favor considere cuidadosamente as implicações de segurança em usar uma base de dados debconf remota. A menos que você confie na fonte e confie na rede envolvida isso não é algo seguro a ser feito.

As coisas a seguir são configuráveis para este controlador.

e confie
na rede envolvida isso não é algo seguro a ser feito.
.P
As coisas a seguir são configuráveis para este controlador.

server

O nome da máquina ou endereço IP de um servidor LDAP ao qual se conectar.

port

A porta na qual se conectar no servidor LDAP. Caso nenhuma seja informada a porta padrão 389 é usada (ou 686 caso SSL esteja sendo usado).

basedn

O DN sob o qual todos os itens de configuração serão armazenados. É assumido que cada item de configuração resida em um DN de cn=<nome do item>,<Base DN>. Caso esta estrutura não seja seguida, todas as apostas estrão fechadas.

binddn

O DN sob o qual se ligar ao diretório. Ligação anônima será usada caso nenhum seja especificado.

bindpasswd

A senha a usar na ligação de autenticada (usada com binddn, acima). Caso não especificado, ligação anônima será usada.

Esta opção não deve deverá ser usada geralmente. Ligação anônima deverá ser suficiente a maioria das vezes par acesso somente leitura. Especificar um DN de ligação e uma senha deverá ser reservado para o caso ocasional que você deseja atualizar os dados de configuração debconf.

Uma estrofe de exemplo configurando uma base de dados usando este controlador, assumindo que a base de dados remota esteja em exemple.com e possa ser acessada anonimamente:

Name: ldapdb Driver: LDAP Readonly: true Server: example.com BaseDN: cn=debconf,dc=example,dc=com

Outro exemplo, desta vez a base de dados LDAP está em localhost e pode ser gravada:

Name: ldapdb Driver: LDAP Server: localhost BaseDN: cn=debconf,dc=domain,dc=com BindPasswd: secret

Pipe

Este controlador de base de dados de próposito especial lê e grava a base de dados da entrada/saída padrão. Pode ser útil para pessoas com necessidades especiais.

As seguintes opções são configuráveis para este controlador :

Format

O formato para ler e gravar. Veja FORMATOS abaixo. O padrão é usar um formato como a rfc-822.

Infd

Número do descritor de arquivo a partir do qual ler. O padrão é ler da entrada padrão (stdin). Caso definido para "none", a base de dados não irá ler nenhum dado na inicialização.

Outfd

Número do descritor de arquivo para o qual gravar. O padrão é gravar na saída padrão (stdout).

Isto é tudo sobre controladores reais, agora vamos para os meta-controladores ..

Stack

Este controlador empilha várias outras base de dados (de qualquer tipo) e permite que as mesmas sejam acessadas como se fossem somente uma. Quando o debconf pergunta por um valor, a primeira base de dados na pilha que contém o valor o retorna. Caso o debconf escreva algo na base de dados, a escrita normalmente vai para o primeiro controlador na pilha que possui o item que o debconf está modificando, e caso nenhum tenha, o novo item é adicionado para o primeira base de dados gravável na pilha.

As coisas se tornam mais interessantes se uma das base de dados na pilha é somente leitura. Considere uma pilha de base de dados foo, bar e baz, one foo e baz são amas somente leitura. o Debconf quer modificar um item, e esse item está presente somente em baz, a qual é somente leitura. O controlador Stack (pilha) é inteligente o bastante para entender que isso não funcionará, irá copiar o item de baz para bar e a gravação será feita em bar. Agora o item em baz é sombreado pelo item em bar e não será mais para o debconf.

Este tipo de coisa é particularmente útil se você quer apontar muitos para uma base de dados central somente leitura, enquanto continua permitindo que as coisas sejam sobreescritas em cada sistema. Quando controles de acesso são adicionados a brincadeira, pilhas permitem que você faça muitas outras coisas interessantes, como redirecionar todas as senhas para uma base de dados enquanto a base de dados abaixo dessa gerencia tudo mais.

Somente um pouco de configuração é necessário para configurar uma pilha :

Stack

É onde você especifica uma lista de outras base de dados, por nome, para dizer a pilha o que a compõe.

Por exemplo :

Name: megadb
Driver: stack
Stack: passworddb, configdb, companydb

AVISO: O controlador stack ainda não é muito bem testado. Use por seu próprio risco.

Backup

Este controlador passa todas as requisições para outro controlador de base de dados. Mas também copia todas as requisições de gravação para um controlador de base de dados backup.

Você deve especificar os seguintes campos para configurar este controlador :

Db

A base de dados a partir da qual ler e para a qual gravar.

Backupdb

O nome da base de dados para a qual enviar cópias das gravações.

Por exemplo :

Name: backup
Driver: Backup
Backupdb: mydb
Backup: mybackupdb

Debug

Este controlador passa todas as requisições para outro controlador de base de dados, exibindo saída de depuração verbosa sobre as requisições e resultados.

Você deve especficar os seguintes campos para configurar este controlador :

Db

A base de dados a partir da qual ler e para a qual gravar.

CONTROLES DE ACCESSO

Quando você configura ua base de dados, você pode também usar alguns campos para especificar controles de acesso. Você pode especificar que uma base de dados somente aceita senhas, por exemplo, ou fazer com que a base de dados aceite somente coisas com "foo" em seu nome.
Readonly

Como mencionado anteriormente, este controle de acesso, caso definido para "true", faz com que uma base de dados seja somente leitura. O Debconf irá ler valores a partir da mesma, mas nunca irá gravar coisa alguma nela.

Accept-Name

O texto nesse campo é uma expressão regular compatível com perl, a qual é comparada com os nomes dos items a medida que os mesmos são requisitados a partir da base de dados. A base de dados permitirá ao debconf acessá-la ou modificá-la somente se os nomes dos items casarem com a expressão regular.

Reject-Name

Como Accept-Name, exceto que qualquer nome de item que case com o expressão regular será rejeitado.

Accept-Type

Outra expressão regular, este checa com base no tipo do item que está sendo acessado. O acesso será permitido somente se o tipo casar com a expressão regular.

Reject-Type

Como Accept-Type, exceto que qualquer tipo casando com esta expressão regular será rejeitado.

FORMATOS

Alguns dos controladores de base de dados usam módulos de formato para controlar o formato atual no qual a base de dados é armazenada em disco. Os seguintes formatos são atualmente suportados :

822

Este é um formato de arquivo livremente baseado no formato rfc-822 para cabeçalhos de menasgens de e-mail. Formatos similares são usados por todo Debian; no arquivo de status do dpkg, e outros locais.

EXEMPLO

Note que alguns dos controladores e formatos neste exemplo não existem. Sinta-se livre para escrevê-los!

# Essa estrofe é usada para configuração geral do debconf.
Config: stack
Templates: templates
Log-To: syslog
Debug: developer

# Esta é minha prória base de dados local.
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/config

# Esta é outra base de dados que eu uso para # armazenar somente a configuração do servidor X.
Name: X
Driver: File
File: /etc/X11/debconf.dat
Mode: 644
# É meio complicado descobrir quais questões # pertencem ao X; deveria estr usando uma profunda # estrutura em àrvore assim eu poderia somente casar # com ^X/ # Oh bem.
Accept-Name: xserver|xfree86|xbase

# Este é o global de nossa empresa, base de dados # debconf somente-leitua (para mim!).
Name: company
Driver: LDAP
Server: debconf.foo.com BaseDN: cn=debconf,dc=foo,dc=com BindDN: uid=admin,dc=foo,dc=com BindPasswd: secret
Readonly: true
# Não quero que nenhuma senha que possa estar # flutuando por aí aqui.
Reject-Type: password
# Caso esta base de dados não esteja acessível # por qualquer que seja a razão, continue de # qualquer forma.
Required: false

# Eu uso eta base de dados para armazenar # senhas protegidas e seguras.
Required: false Name: passwords Driver: File Filename: /etc/debconf/passwords Mode: 600
Accept-Type: password

# Vamos colocá-las todas juntas em uma pilha de # base de dados.
Name: stack
Driver: Stack
Stack: passwords, X, mydb, company # Todas as senhas vão para a base de dados de senhas. # A maioria das coisas relacionadas à configuração # do X vão para a base de dados X e qualquer outra coisa # vai para minha base de dados principal. Os valores são # pesquisados em cada uma delas, e caso nenhuma tenha um # valor em particular, o mesmo é pesquisado na base de # dados LDAP da empresa ( a menos que seja uma senha).

# Uma base de dados é também para armazenar modelos. Não # precisamos fazer com que ela seja mais bonita.
Name: templates
Driver: File
Mode: 644
Format: 822
Directory: /var/cache/debconf/templates

NOTAS

Caso você utilize algo como ${HOME} neste arquivo, isso será substituído com o valor da variável de ambiente nomeada.

Os nomes dos campos (a parte da linha antes dos dois pontos) não são sensíveis à caixa (case-insensitive). Os valores, porém, são sensíveis à caixa (case-sensitive).

MELHORIAS PLANEJADAS

Mais controladores e formatos. Algumas idéias incluem : Um controlador SQL, com a capacidade de acessar uma base de dados remota. Um controlador DHCP, que disponibiliza algumas coisas especiais como o nome da máquina (hostname), endereço IP e servidores DNS. Um comtrolador que obtém valores de campos TXT de registros DNS públicos. Um formato que seja compatível com a saída do cdebconf. Um controlador de sobreescrita que pode sobreescrever o valor dos campos ou assinala todas as requisições que passam através do mesmo.

ARQUIVOS

/etc/debconf.conf

~/.debconfrc

VEJA TAMBÉM

debconf(7)

AUTOR

Joey Hess <joeyh [AT] debian.org>