Manpages

NOME

dh_installdeb - instala ficheiros no directório DEBIAN

RESUMO

dh_installdeb [debhelper opções]

DESCRIÇÃO

dh_installdeb é um programa debhelper que é responsável por instalar ficheiros nos directórios DEBIAN nos directórios de compilação de pacotes com as permissões correctas.

FICHEIROS

pacote.postinst
pacote
.preinst
pacote
.postrm
pacote
.prerm

Estes scripts de maintainer são instalados no directório DEBIAN .

dh_installdeb irá executar a substituição de tokens conhecidos do padrão #TOKEN#. Em geral, os scripts irão querer incluir o #DEBHELPER# para beneficiar dos scripts de shell gerados pelos comandos debhelper (incluindo commands (including aqueles de dh_installdeb quando processa ficheiros package.maintscript).

O token #DEBHELPER# deve ser colocado na sua linha própria pois é muitas vezes substituído por um script de shell de multi-linhas.

pacote.triggers
pacote
.shlibs

Estes ficheiros de controle são instalados no directório DEBIAN .

Note que o pacote.shlibs é apenas instalado em nível de compatibilidade 9 e anteriores. Em compatibilidade 10, use dh_makeshlibs(1).

pacote.conffiles

Historicamente, este ficheiro era preciso para marcar manualmente ficheiros como ficheiros de configuração (conffiles). No entanto, tem-se tornado de facto obsoleto desde que o debhelper passou a computar automaticamente quais os ficheiros devem ser marcados como ficheiros de configuração.

Em nível de compatibilidade até e incluindo 11, este ficheiro de controle será instalado no directório DEBIAN . Em nível de compatibilidade 12 e posterior, o ficheiro é ignorado em silêncio.

pacote.maintscript

As linhas neste ficheiro correspondem a comandos e parâmetros de dpkg-maintscript-helper(1). No entanto, os "maint-script-parameters" não devem ser incluídos pois o debhelper irá adicionar esses automaticamente.

Exemplo:

    # Correct
    rm_conffile /etc/obsolete.conf 0.2~ foo
    # INCORRECT
    rm_conffile /etc/obsolete.conf 0.2~ foo -- "$@"

No nível de compatibilidade 10 ou posterior, quaisquer meta-caracteres de shell serão "escapados" então não se pode inserir aqui código arbitrário de shell. Por exemplo, uma linha como "mv_conffile /etc/oldconffile /etc/newconffile" irá inserir fragmentos de script de maintainer em todos os scripts de maintainer suficientes para mover esse ficheiro de configuração.

Foi também intenção de fazer escape de shell a meta-caracteres nos níveis de compatibilidade anteriores. No entanto, não funcionava correctamente e como tal era possível embeber código de shell arbitrário nos níveis de compatibilidade anteriores.

A ferramenta dh_installdeb irá fazer alguma validação básica a alguns dos comandos listados neste ficheiro para apanhar enganos comuns. A validação é activada como um aviso desde compatibilidade 10 e como um erro a resolver na compatibilidade 12.

Suporta variáveis de substituição em compatibilidade 13 e posterior como documentado em debhelper(7).

OPÇÕES

-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/postinst <<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_installdeb 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.postinst <<EOF
        # Script for #PACKAGE#
        #TOKEN#
        EOF
        cat >> debian/bar.postinst <<EOF
        # Script for #PACKAGE#
        #TOKEN#
        EOF
        cat >> debian/baz.postinst <<EOF
        # Script for #PACKAGE#
        #TOKEN#
        EOF
    dh_installdeb -pfoo -pbar -pbaz  --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \
      --define pkg.baz.TOKEN=unique-baz-value

Neste exemplo, #TOKEN# irá expandir para default em debian/foo.postinst, para unique-bar-value em debian/bar.postinst e para unique-baz-value em debian/baz.postinst.

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.postinst e ele será substituído por unique-bar-value.

SUBSTITUIÇÃO EM SCRIPTS DE MAINTAINER

O dh_installdeb irá substituir automaticamente os seguintes tokens dentro de um script disponibilizado pelo maintainer (se não for substituído via -D/--define):
#DEBHELPER#

Este token é por predefinição substituído por excertos de shell de comandos debhelper gerados. Isto inclui os excertos gerados pelo dh_installdeb a partir do ficheiro package.maintscript (se presente).

#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.

Limitações nos nomes dos token
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_installdeb rejeite o comando com um erro na maioria dos casos.

VEJA TAMBÉM

debhelper(7)

Este programa é parte do debhelper.

AUTOR

Joey Hess <joeyh [AT] debian.org>

TRADUÇÃO

Américo Monteiro

Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro a_monteiro [AT] gmx.com ou Equipa Debian de Tradução Portuguesa traduz [AT] debianpt.org.