dh_installdebconf - instala ficheiros usados pelo debconf nos directórios
de compilação de pacotes
dh_installdebconf [
debhelper opções]
[
-n] [
-- params]
dh_installdebconf é um programa debhelper que é
responsável por instalar ficheiros usados pelo debconf em
directórios de compilação de pacotes.
Também gera automaticamente os comandos
postrm necessários
para a interface com o debconf. Os comandos são adicionados aos scripts
do maintainer pelo
dh_installdeb. Veja
dh_installdeb(1) para uma
explicação de como isso funciona.
Note que se você usar debconf, provavelmente o seu pacote precisa de
depender disso (será adicionado a
${misc:Depends} por este
programa).
Note que para o seu script de configuração ser chamado pelo
<dpkg>, o seu
postinst precisa de partir do módulo de
configuração do debconf, o
dh_installdebconf não
instala esta declaração no
postinst automaticamente
porque é muito difícil de o fazer correctamente.
- debian/pacote.config
- Este é o script config de debconf, e é
instalado no directório DEBIAN no directório de
compilação do pacote.
Dentro do script, o token #DEBHELPER# é substituído por
fragmentos de script shell gerados por outros comandos do debhelper.
- debian/pacote.templates
- Este é o ficheiro templates de debconf, e
é instalado no directório DEBIAN no directório
de compilação do pacote.
- debian/po/
- Se este directório estiver presente, este programa
irá usar automaticamente o po2debconf(1) para gerar
ficheiros de modelos fundidos que incluem as traduções de
lá.
Para que isto funcione, o seu pacote deve compilar dependendo de
po-debconf.
-
-n, --no-scripts
- Não modifique o script postrm.
-
-- params
- Passa os params para po2debconf.
-
-DTOKEN=VALUE, --define
TOKEN=VALUE
- Define tokens a serem substituídos dentro dos
scripts do maintainer quando são gerados. Por favor note as
limitações descritas em "Limitações nos
nomes dos tokens" também se aplicam a tokens definidos na
linha de comandos. Nomes de tokens inválidos irão despoletar
um erro.
No caso simples, este parâmetro irá causar com que
#TOKEN# seja substituído por
VALUE. Se VALUE começar com um @-sign literal,
então espera-se que VALUE aponte para um ficheiro que
contém o valor real a inserir.
Um token declarado explicitamente com este parâmetro irá
substituir tokens embutidos.
Exemplos de testes para ajuda na compreensão:
cat >> debian/config <<EOF
#SIMPLE#
#FILEBASED#
EOF
echo -n "Complex value" > some-file
dh_installdeb --define SIMPLE=direct --define FILEBASED=@some-file
Neste exemplo, #SIMPLE# irá expandir para direct e
#FILEBASED# irá expandir para Complex value.
É também possível definir valores
específicos-de-pacote para um dado token. Isto é útil
quando dh_installdebconf está a actuar em múltiplos
pacotes que precisam de valores diferentes para o mesmo token. Isto
é feito ao prefixar o nome do token com
pkg.nome-do-pacote ..
Isto pode ser usado como no exemplo seguinte:
cat >> debian/foo.config <<EOF
# Script for #PACKAGE#
#TOKEN#
EOF
cat >> debian/bar.config <<EOF
# Script for #PACKAGE#
#TOKEN#
EOF
cat >> debian/baz.config <<EOF
# Script for #PACKAGE#
#TOKEN#
EOF
dh_installdebconf -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \
--define pkg.baz.TOKEN=unique-baz-value
In this example, #TOKEN# will expand to default in
debian/foo.config, to unique-bar-value in
debian/bar.config and to unique-baz-value in
debian/baz.config.
Note que os tokens #pkg.*# irão ser visíveis em todos
os scripts que actuem. Ex, você pode referir a
#pkg.bar.TOKEN# dentro de debian/foo.config e ele
será substituído por unique-bar-value.
O
dh_installdebconf irá substituir automaticamente os seguintes
tokens dentro de um script disponibilizado pelo maintainer (se não for
substituído via
-D/
--define):
- #DEB_HOST_NAME#, #DEB_BUILD_NAME#,
#DEB_TARGET_ NAME#
- Estes tokens são substituídos pela
variável respectiva a partir de dpkg-architecture(1). Em
quase todos os casos, você vai querer usar a variante
#DEB_HOST_ NAME num script para assegurar que
obtêm o valor correcto quando faz compilação cruzada.
Na melhor das hipóteses, tokens deste padrão que não
correspondam a uma variável em dpkg-architecture(1)
serão deixá-dos como estão.
- #ENV.NAME#
- Estes tokens deste formato serão substituídos
pelo valor da variável de ambiente correspondente. Se a
variável de ambiente não estiver definida, o token é
substituído pela string vazia.
Note que existem limites em quais nomes podem ser usados (veja
"Limitações nos nomes dos token").
- #PACKAGE#
- Este token é por predefinição
substituído pelo nome do pacote, o qual irá conter o script
concreto.
Todos os tokens que se destinam a ser substituídos têm de
corresponder ao regex: #[A-Za-z0-9_.+]+#
Tokens que não correspondam a esse regex serão ignorados em
silêncio se encontrados no script modelo. Nomes de token
inválidos passados a
-D ou
--define irão causar
que o
dh_installdebconf rejeite o comando com um erro na maioria dos
casos.
debhelper(7)
Este programa é parte do debhelper.
Joey Hess <
[email protected]>
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor
comunique para Américo Monteiro
[email protected] ou Equipa
Debian de Tradução Portuguesa
[email protected].