Scroll to navigation

DH_INSTALLDEB(1) Debhelper DH_INSTALLDEB(1)

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

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.

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

This file will be installed into the DEBIAN directory. The provided file will be enriched by debhelper to include all the conffiles auto-detected by debhelper (the maintainer should not list there as debhelper assumes it should handle that part).

This file is primarily useful for using "special" entries such as the remove-on-upgrade feature from dpkg.

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.

Where possible, dh_installdeb may choose to rewrite some or all of the entries into equivalent features supported in dpkg without relying on maintainer scripts at its sole discretion (examples include rewriting rm_conffile into dpkg's remove-on-upgrade). The minimum requirement for activating this feature is that debhelper runs in compat 10 or later.

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

OPÇÕES

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@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@gmx.com ou Equipa Debian de Tradução Portuguesa traduz@debianpt.org.

2021-09-23 13.5.2