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
este ficheiro será instalado no directório DEBIAN. O ficheiro fornecido será enriquecido pelo debhelper para incluir todos os conffiles auto-detetados pelo debhelper (o responsável deve estar listado lá pois o debhelper assume que deve lidar com essa parte.) Este ficheiro é principalmente útil para usar entradas "especiais" tais como a funcionalidade remove-on-upgrade do dpkg.
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. Onde possível, o dh_installdeb pode escolher rescrever algumas ou todas as entradas em funcionalidades equivalentes suportadas no dpkg sem se apoiar nos scripts do maintainer scripts a seu exclusivo critério (exemplos incluem rescrever rm_conffile em remove-on-upgrade do dpkg). O requerimento mínimo para activar esta funcionalidade é que o debhelper corra em compatibilidade 10 ou posterior. 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 <[email protected]>

TRADUÇÃO

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

Recommended readings

Pages related to dh_installdeb you should read also: