Scroll to navigation

DEBCONF.CONF(5) File Formats Manual DEBCONF.CONF(5)

NOME

debconf.conf - ficheiro de configuração de debconf

DESCRIÇÃO

Debconf é um sistema de configuração para pacotes Debian. /etc/debconf.conf e ~/.debconfrc são ficheiros de configuração que o debconf usa para determinar quais bases de dados deve usar. Estas bases de dados para armazenar dois tipos de informação; dados de configuração dinâmicos que o utilizador insere, e dados de template estáticos. O debconf oferece um backend de base de dados extensível e flexível. Podem ser criadas novas drivers com um esforço mínimo, e conjuntos de drivers podem ser combinados de várias maneiras.

SINOPSE


# Este é um exemplo de ficheiro de configuração que é
# suficiente para usar 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 DE FICHEIRO

O formato deste ficheiro é uma série de estrofes, cada uma separada por pelo menos uma linha completamente vazia. As linhas de comentários começadas com um caractere "#" são ignoradas.

A primeira estrofe do ficheiro é especial, é usada para configurar o debconf como uma entidade completa. São necessários dois campos nesta primeira estrofe:

Especifica o nome da base de dados de onde carregar dados de configuração.
Especifica o nome da base de dados a usar para a cache de template.

Campos adicionais que podem ser usados incluem:

O frontend que o Debconf deverá usar, sobrepondo qualquer definição de frontend na base de dados do debconf.
A prioridade que o Debconf deve usar, sobrepondo-se a qualquer prioridade definida na base de dados debconf.
O endereço de email para onde o debconf deve enviar mail se precisar de certificar que o administrador viu uma mensagem importante. A predefinição é "root", mas pode ser definido para qualquer endereço de email válido para enviar o mail para lá. Se preferir que o debconf nunca lhe mande nenhum mail, especifique um endereço vazio. Isto pode ser sobreposto na hora com a variável de ambiente DEBCONF_ADMIN_EMAIL.
Se definido, isto fará o debconf enviar informação de depuração para o erro standard. O valor que é definido pode ser algo como "user", "developer", "db", ou uma expressão regular. Tipicamente, em vez de o definir permanentemente num ficheiro de configuração, você vai apenas querer ligar a depuração temporariamente, e a variável de ambiente DEBCONF_DEBUG pode ser definida para conseguir isso.
Se definido,isto fará com que o debconf não mostre avisos sobre várias coisas. Isto pode ser sobreposto na hora com a variável de ambiente DEBCONF_NOWARNINGS.
Faz o debconf registar informação de depuração no syslog, quando é executado. O valor é definido para controlar o que é registado. Veja Debug, em cima, para uma explicação dos valores que podem ser definidos para controlar o que é registado.
Se definido para "true", faz com que alguns frontends do debconf usem um modo de mostrador conciso especial que mostra o mínimo possível. A predefinição é 'false'. O modo conciso pode ser definido temporariamente através da variável de ambiente DEBCONF_TERSE.

Por exemplo, a primeira estrofe de um ficheiro pode parecer-se com isto:
Config: configdb
Templates: templatedb

Cada estrofe que permanece no ficheiro define uma base de dados. Uma estrofe de base de dados começa por dar o nome à base de dados:
Name: configdb

Depois indica que driver de base de dados deve ser usada para esta base de dados. Veja DRIVERS em baixo, para informação acerca de quais drivers estão disponíveis.
Driver: Ficheiro

Você pode indicar que a base de dados não é essencial ao funcionamento apropriado do debconf dizendo que não é requerida. Isto fará com que o debconf se atrapalhe se a base de dados falhe por alguma razão.
Required: false

Você pode marcar qualquer base de dados como 'só-leitura' e o debconf não irá escrever nada nela.
Readonly: true

Você também pode limitar que tipos de dados podem ir para a base de dados com linhas Accept- e Reject-; veja CONTROLES DE ACESSO em baixo.

O restante de cada estrofe de base de dados é usado para disponibilizar configuração específica para essa driver. Por exemplo, a driver Text precisa de saber um directório onde colocar a base de dados, para que você possa dizer:
Filename: /var/cache/debconf/config.dat

DRIVERS

Estão disponíveis um número de drivers, e podem ser escritas mais com pouca dificuldade. As drivers vêm em dois tipos gerais. Primeiro existem as drivers verdadeiras -- drivers que realmente acedem e armazenam dados nalgum tipo de base de dados, que pode estar num sistema de ficheiros local, ou num sistema remoto. Depois existem as meta-drivers que combinam outras drivers juntamente para formar sistemas mais interessantes. Vamos começar pelas primeiras.

Esta driver de base de dados permite ao debconf armazenar uma base de dados inteira num único ficheiro de texto simples. Isto torna mais fácil arquivar, transferir entre máquinas, e editar. É um dos formatos de base de dados mais compactado em termos de espaço de disco usado. É também um dos mais lentos.

No aspecto negativo, o ficheiro completo tem de ser lido de cada vez que o debconf arranca, e guardá-lo é também lento.

As seguintes coisas são configuráveis para esta driver.

O ficheiro a ser usado como base de dados. Este é um campo necessário.
As permissões para criar um ficheiro se este ainda não existir. A predefinição é 600, porque o ficheiro pode conter palavras-passe em algumas circunstâncias.
O formato do ficheiro. Veja FORMATOS em baixo. A predefinição é usar um formato tipo rfc-822.
Se deve ser feita uma cópia de segurança (backup) do ficheiro antigo antes de o alterar. A predefinição é 'true'.

Um exemplo de estrofe que define uma base de dados usando esta driver:


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

Esta driver de base de dados permite ao debconf armazenar dados numa estrutura de directórios hierárquicos. Os nomes dos vários templates de debconf e questões são usados como são para formar directórios como ficheiros neles. Este formato para a base de dados é o mais fácil de navegar e passear manualmente. Tem bons tempos de carga e gravação. Tipicamente também é o que ocupa mais espaço, porque muitos ficheiro pequenos e sub-directórios ocupam algum espaço adicional.

As seguintes coisas são configuráveis para esta driver.

O directório onde colocar os ficheiros. Necessário.
Uma extensão a adicionar aos nomes dos ficheiros. Tem que estar definida para uma string não vazia; a predefinição é ".dat"
O formato do ficheiro. Veja FORMATOS em baixo. A predefinição é usar um formato tipo rfc-822.
Se deve ser feita uma cópia de segurança (backup) do ficheiro antigo antes de o alterar. A predefinição é 'true'.

Um exemplo de estrofe que define uma base de dados usando esta driver:


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

Esta driver de base de dados é um compromisso entre as bases de dados File e DirTree. Usa um directório, onde existe um ficheiro (aproximadamente) por cada pacote que usa debconf. Isto é bastante rápido, enquanto usa um pouco mais de espaço que a driver de bases de dados File.

Esta driver é configurada do mesmo modo que a driver DirTree, mais:

As permissões com as quais criar ficheiros. A predefinição é 600, porque os ficheiros podem conter palavras-passe em algumas circunstâncias.

Um exemplo de estrofe que define uma base de dados usando esta driver:


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

AVISO: Esta driver de base de dados é actualmente experimental. Use-a com cuidado.

Esta driver de base de dados acede a uma directório LDAP para dados de configuração de debconf. Devido à natureza da besta, os directórios LDAP devem tipicamente ser acedidos em modo de apenas-leitura. Isto é porque podem ocorrer múltiplos acessos, e é geralmente melhor para a consistência dos dados se ninguém tentar modificá-los quando isto está a acontecer. Claro que o acesso de escrita é suportado para aqueles casos em que você quer actualizar os dados de configuração no directório.

Para informação sobre configurar um servidor LDAP para o debconf, leia /usr/share/doc/debconf-doc/README.LDAP (do pacote debconf-doc).

Para usar esta driver de base de dados, você precisa de ter o pacote libnet-ldap-perl instalado. O debconf sugere esse pacote, mas não depende dele.

Por favor considere cuidadosamente as implicações de segurança de usar uma base de dados debconf remota. A menos que confie na fonte, e tenha confiança na rede interveniente, não é algo muito seguro de se fazer.

As seguintes coisas são configuráveis para esta driver.

O nome de máquina ou endereço IP de um servidor LDAP para se ligar.
O porto por onde ligar ao servidor LDAP. Se nenhum for fornecido, é usado o porto predefinido.
O DN sob o qual todos os itens de configuração serão armazenados. A cada item de configuração será assumido que vive numa DN de cn=<item name>,<Base DN>. Se esta estrutura não for seguida, todas as apostas estão fora.
O DN para unir ao directório como. Será usada união anónima se nenhum for especificado.
A palavra-passe a usar numa união autenticada (usada com o binddn, em cima). Se não for especificada, será usada união anónima.

Esta opção não deve ser usada nos casos gerais. A união anónima deve ser suficiente na maioria das vezes para acesso em modo só-leitura. Especificar uma união DN e palavra-passe deve ser reservado para casos ocasionais onde deseja actualizar os dados de configuração do debconf.
Activa acesso a entradas LDAP individuais, em vez de obter-las todas de uma vez no inicio. Isto é muito útil se desejar monitorizar os seus logs do LDAP por pedidos de chaves debconf específicas. Deste modo, você também pode escrever código de manipulação personalizado na parte do servidor LDAP.

Note que quando esta opção está activa, a ligação ao servidor LDAP é mantida activa durante toda a execução do Debconf. Isto e um pouco diferente do comportamento todo-em-um onde duas ligações breves são feitas ao LDAP; no início para obter todas as entradas, e no fim para guardar eventuais alterações.

Um exemplo de estrofe que define uma base de dados usando esta driver, assumindo que a base de dados remota está em example.com e pode ser acedida em anonimato:


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

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


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

Esta driver de base de dados de objectivos especiais lê e escreve na base de dados a partir da entrada/saída standard. Pode ser útil para pessoas com necessidades especiais.

As seguintes coisas são configuráveis para esta driver.

O formato para ler e escrever. Veja FORMATOS em baixo. A predefinição é usar um formato tipo rfc-822.
O número de descritor de ficheiro de onde ler. A predefinição é stdin, Se definido para "none", a base de dados não irá ler nenhuns dados no arranque.
O número de descritor de ficheiro para onde escrever. A predefinição é stdout, Se definido para "none", a base de dados será deitada fora ao desligar.

E é tudo sobre as drivers reais, agora vamos para as meta-drivers...

Esta driver empilha um número de outras bases de dados (de qualquer tipo), e permite que sejam acedidas como uma só. Quando o debconf pede um valor, a primeira base de dados na pilha que contém o valor devolve-o. Se o debconf escrever algo na base de dados, a escrita vai normalmente para a primeira driver na pilha que possui o item que o debconf está a modificar, e se nenhuma o tiver, o novo item é adicionado na primeira base de dados da pilha onde se pode escrever.

As coisas tornam-se mais interessantes se uma das bases de dados da pilha for de só-leitura. Considere uma pilha das bases de dados foo, bar e baz onde foo e baz são ambas só-leitura. O debconf quer alterar um item, e este item está presente apenas em baz, a qual é só-leitura. A driver stack é suficientemente inteligente para perceber que isso não vai funcionar, e irá copiar o item de baz para bar, e a escrita irá ter lugar em bar. Agora o item em baz está colocado na sombra pelo item em bar, e não irá mais ser visível ao debconf.

Este tipo de coisa é particularmente útil se você desejar apontar muitos sistemas a uma base de dados central de só-leitura, e ao mesmo tempo permitir que coisas possam ser ultrapassadas em cada sistema. Quando são adicionados controles de acesso à situação, as pilhas permitem-lhe fazer mais coisas interessantes, como redireccionar todas as palavras-passe para uma base de dados enquanto que a base de dados inferior lida com tudo o resto.

Apenas é necessário um pedaço de configuração para configurar um stack:

Aqui é onde você especifica uma lista de outras bases de dados, pelo nome, para lhe dizer o que compõe a stack.

Por exemplo:


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

AVISO: A driver stack ainda não foi bem testada. Use sob sua responsabilidade.

Backup

Esta driver passa todos os pedidos para outra driver de base de dados. Mas também copia todos os pedidos de escrita para uma driver de base de dados de salvaguarda.

Você tem de especificar os seguintes campos para configurar esta driver:

A base de dados de onde ler e onde escrever.
O nome da base da dados para enviar cópias das escritas.

Por exemplo:


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

Debug

Esta driver passa todos os pedidos para outra driver de base de dados, gerando saídas de depuração detalhadas acerca dos pedidos e resultados.

Você tem de especificar os seguintes campos para configurar esta driver:

A base de dados de onde ler e onde escrever.

CONTROLOS DE ACESSO

Quando você configura uma base de dados, também pode usar alguns campos para especificar controlos de acesso. Você pode especificar que uma base de dados apenas aceita palavras-passe, por exemplo, ou fazer uma base de dados apenas aceitar coisas com "foo" nos seus nomes.

Como já dito antes, este controlo de acesso, se definido para "true", torna uma base de dados em só-leitura. O debconf irá ler valores dela, mas nunca irá escrever nada lá.
O texto neste campo é uma expressão regular compatível com perl que é comparada com os nomes dos itens quando eles são pedidos da base de dados. Apenas se um nome de item corresponder à expressão regular, é que a base de dados permite ao debconf aceder-lhe ou modificá-la.
Tal como Accept-Name, excepto que qualquer nome de item que corresponda a esta expressão regular será rejeitado.
Outra expressão regular, esta corresponde contra o tipo de item que está a ser acedido. Apenas se o tipo corresponder ao regex é que o acesso será concedido.
Tal como Accept-Type, excepto que qualquer tipo que corresponda a esta expressão regular será rejeitado.

FORMATOS

Algumas das drivers de bases de dados usam módulos de formato para controlar o formato actual no qual a base de dados está armazenada no disco. São actualmente suportados estes formatos:

822
Este é um formato de ficheiro livremente baseado no formato rfc-822 para cabeçalhos de mensagens de email. São usados formatos semelhantes em Debian, no ficheiro de estado do dpkg, e muito mais.

EXEMPLO

Aqui está um exemplo mais complicado de um ficheiro debconf.conf.


# Esta estrofe é usada para configuração debconf geral.
Config: stack
Templates: templates
Log: developer
Debug: developer


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


# Isto é outra base de dados que eu uso para manter
# apenas a configuração do servidor X.
Name: X
Driver: File
Filename: /etc/X11/debconf.dat
Mode: 644
# É difícil separar quais as questões pertencem
# ao X; deveria usar uma estrutura de árvore mais funda
# para que pudesse apenas coincidir com ^X/
# Ora bem.
Accept-Name: xserver|xfree86|xbase


# Esta é a base de dados debconf global da companhia,
# apenas para leitura (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 nenhumas palavras-passe que possam
# andar a flutuar por aí.
Reject-Type: password
# Se esta base de dados não estiver acessível por qualquer
# motivo, continuar de qualquer maneira.
Required: false


# Eu uso esta base de dados para manter as
# palavras-passe em segurança.
Name: passwords
Driver: File
Filename: /etc/debconf/passwords
Mode: 600
Accept-Type: password


# Vamos juntá-los todos
# numa pilha de base de dados.
Name: stack
Driver: Stack
Stack: passwords, X, mydb, company
# Portanto, todas as palavras-passe vão para a base de dados
# das palavras-passe.
# A maioria das configurações do X vão para a base de dados
# do X, e tudo o resto vai para a minha base de dados
# principal. Os valores são trancados em cada um deles
# na sua vez, e se nenhum tiver um valor particular, é
# trancado na base de dados LDAP geral da companhia
# (a menos que seja uma palavra-passe).


# Uma base de dados também é usada para manter templates.
# Nós não precisamos fazer isto tão imaginativo.
Name: templates
Driver: File
Mode: 644
Format: 822
Filename: /var/cache/debconf/templates

NOTAS

Se você usar algo como ${HOME} neste ficheiro, será substituído pelo valor da variável de ambiente com o mesmo nome.

Também podem ser usadas variáveis de ambiente para sobrepor a base de dados na hora, veja debconf(7)

Os nomes do campos (a parte da linha antes da vírgula) são insensíveis a maiúsculas/minúsculas. No entanto, os valores são sensíveis a maiúsculas/minúsculas.

MELHORIAS PLANEADAS

Mais drivers e formatos. Algumas ideias incluem: Uma de«river SQL, com a capacidade de aceder a uma base de dados remota. Uma driver DHCP, que torna disponível algumas coisas especiais como nome de máquina, endereço IP, e servidores DNS. Uma driver que puxa valores dos campos TXT de registos DNS públicos. Um formato compatível com a saída do cdebconf. Uma driver de sobreposição, que pode sobrepor o campo do valor ou as bandeiras de todos os pedidos que passam por ela.

FICHEIROS

/etc/debconf.conf

~/.debconfrc

VEJA TAMBÉM

debconf(7)

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.