DEBCONF.CONF(5) | File Formats Manual | DEBCONF.CONF(5) |
debconf.conf - ficheiro de configuração de debconf
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.
# 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
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:
Campos adicionais que podem ser usados incluem:
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
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.
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.
Um exemplo de estrofe que define uma base de dados usando esta driver:
Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat
As seguintes coisas são configuráveis para esta driver.
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 é configurada do mesmo modo que a driver DirTree, mais:
Um exemplo de estrofe que define uma base de dados usando esta driver:
Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb
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.
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
As seguintes coisas são configuráveis para esta driver.
E é tudo sobre as drivers reais, agora vamos para as meta-drivers...
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:
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
Você tem de especificar os seguintes campos para configurar esta driver:
Por exemplo:
Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb
Debug
Você tem de especificar os seguintes campos para configurar esta driver:
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.
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:
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
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.
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.
/etc/debconf.conf
~/.debconfrc
Joey Hess <joeyh@debian.org>
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.