Provided by: debhelper_11.1.6ubuntu2_all 

NOME
dh - sequenciador de comandos do debhelper
RESUMO
dh sequence [--with addon[,addon ...]] [--list] [debhelper opções]
DESCRIÇÃO
dh corre uma sequência de comandos do debhelper. As sequências suportadas correspondem às metas de um
ficheiro debian/rules: build-arch, build-indep, build, clean, install-indep, install-arch, install,
binary-arch, binary-indep, e binary.
METAS DE SOBREPOSIÇÃO
Um ficheiro debian/rules que use dh pode sobrepor o comando que é executado em qualquer passo numa
sequência, ao se definir uma meta de sobreposição.
Para sobrepor o dh_command, adicione uma meta chamada override_dh_command ao ficheiro de regras. Em vez
de correr normalmente dh_command, o dh irá chamar essa meta. A meta de sobreposição pode depois correr o
comando com opções adicionais, ou em vez disso correr comandos completamente diferentes. Veja exemplos em
baixo.
As metas de sobreposição também pode ser definidas para correr apenas quando se compila pacotes
dependentes ou independentes da arquitectura. Use metas com nomes como override_dh_command-arch e
override_dh_command-indep. (Note que para usar esta funcionalidade, você deve usar Build-Depend em
debhelper 8.9.7 ou posterior.)
OPÇÕES
--with addon[,addon ...]
Adiciona os comandos debhelper especificados pelo addon indicado aos lugares apropriados na sequência
de comandos que é executada. Esta opção pode ser repetida mais do que uma vez, ou pode-se listar
múltiplos addons separados por vírgulas. Isto é usado quando existe um pacote de terceiros que
disponibiliza comandos do debhelper. Veja o ficheiro PROGRAMMING para documentação acerca da
sequência de interface de addons.
--without addon
O inverso de --with, desactiva a utilização do addon indicado. Esta opção pode ser repetida mais do
que uma vez, ou pode desactivar vários addons se os listar separados por vírgulas.
--list, -l
Lista todos os addons disponíveis.
Quando chamado apenas com esta opção, o dh pode ser chamado a partir de qualquer directório (isto é,
não precisa de acesso a ficheiros do pacote fonte).
--no-act
Escreve comandos que iriam correr para uma determinada sequência, mas não os corre.
Note que o dh normalmente evita correr comandos que sabe que não fazem nada. Com --no-act, é escrito
em sequência a lista completa dos comandos.
Outras opções passadas a dh são passadas a cada comando que ele corre. Isto pode ser usado para definir
uma opção como -v ou -X ou -N, assim como para opções mais especializadas.
EXEMPLOS
Para ver quais comandos estão incluídos numa sequência, sem realmente fazer nada:
dh binary-arch --no-act
Este é um ficheiro de regras muito simples, para pacotes onde as sequências de comandos predefinidas
funcionam sem opções adicionais.
#!/usr/bin/make -f
%:
dh $@
Muitas vezes você vai querer passar uma opção a um comando debhelper específico. A maneira mais fácil de
o fazer é adicionar uma meta de sobreposição a esse comando.
#!/usr/bin/make -f
%:
dh $@
override_dh_strip:
dh_strip -Xfoo
override_dh_auto_configure:
dh_auto_configure -- --with-foo --disable-bar
Por vezes os automatismos dh_auto_configure(1) e dh_auto_build(1) não conseguem adivinhar que fazer com
um pacote estranho. Aqui está como evitar correr outros comandos quaisquer e em vez disso correr os seus
próprios comandos.
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_configure:
./mondoconfig
override_dh_auto_build:
make universe-explode-in-delight
Outro caso comum é esperar fazer algo manualmente antes ou depois de um comando debhelper particular ser
executado.
#!/usr/bin/make -f
%:
dh $@
override_dh_fixperms:
dh_fixperms
chmod 4755 debian/foo/usr/bin/foo
Por predefinição, as ferramentas Python não são accionadas, devido às alterações contínuas nessa área.
Aqui está como usar o dh_python2.
#!/usr/bin/make -f
%:
dh $@ --with python2
Aqui está como forçar o uso do sistema de compilação Module::Build do Perl, o qual pode ser necessário e
o debhelper erradamente detectar que o pacote usa MakeMaker.
#!/usr/bin/make -f
%:
dh $@ --buildsystem=perl_build
Aqui está um exemplo de criar uma sobreposição ao local onde os comandos dh_auto_* encontram a fonte do
pacote, para um pacote cuja fonte está localizada num sub-directório.
#!/usr/bin/make -f
%:
dh $@ --sourcedirectory=src
E aqui está um exemplo de como dizer aos comandos dh_auto_* para compilarem num sub-directório, o qual
será removido em clean.
#!/usr/bin/make -f
%:
dh $@ --builddirectory=build
Se o seu pacote poder ser compilado em paralelo, por favor use compatibilidade 10 ou passe --parallel ao
dh. Assim o dpkg-buildpackage -j irá funcionar.
#!/usr/bin/make -f
%:
dh $@ --parallel
Se o seu pacote não pode ser compilado correctamente usando múltiplos processos, por favor passe
--no-parallel ao dh (ou ao comando dh_auto_* relevante):
#!/usr/bin/make -f
%:
dh $@ --no-parallel
Aqui está um modo de prevenir que o dh corra vários comandos que você não quer que corram, ao definir
metas de sobreposição vazias para cada comando.
#!/usr/bin/make -f
%:
dh $@
# Comandos a não correr:
override_dh_auto_test override_dh_compress override_dh_fixperms:
Pode-se separar um processo de compilação longo para um pacote de documentação separado usando
sobreposições independentes da arquitectura. Estes serão saltados quando se corre as sequências build-
arch e binary-arch.
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_build-indep:
$(MAKE) -C docs
# Nenhum teste necessário para documentação
override_dh_auto_test-indep:
override_dh_auto_install-indep:
$(MAKE) -C docs install
Adicionando ao exemplo em cima, suponha que precisa de fazer chmod a um ficheiro, mas apenas quando
compila o pacote dependente da arquitectura, pois ele não está presente quando compila apenas a
documentação.
override_dh_fixperms-arch:
dh_fixperms
chmod 4755 debian/foo/usr/bin/foo
INTERNOS
Se você está curioso sobre o funcionamento interno do dh, aqui está como funciona por baixo da capota.
No modo compatibilidade 10 (ou posterior), o dh cria um ficheiro stamp <debian/debhelper-build-stamp>
após os passo(s) de compilação estarem completos para evitar voltar a corrê-los. É possível evitar o
ficheiro stamp ao passar --without=build-stamp para dh. Isto faz com que compilações "não limpas" se
comportem mais como o que algumas pessoas esperam à custa de possivelmente correrem a compilação e
testá-la duas vezes (a segunda vez como root ou sob fakeroot(1)).
Dentro de uma meta de sobreposição, os comandos dh_* irão criar um ficheiro de registo
debian/package.debhelper.log para manter acompanhamento de para quais pacotes os comando(s) têm corrido.
Estes ficheiros log são depois removidos assim que a meta de sobreposição estiver completa.
No modo de compatibilidade 9 e anteriores, cada comando do debhelper irá gravar em
debian/pacote.debhelper.log quando é corrido com sucesso. (O qual dh_clean apaga.) Portanto o dh consegue
dizer quais comandos já foram corridos, para quais pacotes, e evita correr esses comandos de novo.
De cada vez que dh corre (no nível de compatibilidade 9 ou anterior), examina o relatório, e encontra o
último comando registado que está na sequência especificada. Depois continua com o próximo comando da
sequência. As opções --until, --before, --after, e --remaining podem sobrepor este comportamento (ainda
que tenham sido removidas no nível de compatibilidade 10).
Uma sequência também pode correr metas dependentes em debian/rules. Por exemplo, a sequência "binary"
corre a meta "install".
dh usa a variável de ambiente DH_INTERNAL_OPTIONS para passar informação através dos comandos debhelper
que são corridos dentro de metas de sobreposição. O conteúdo (e de facto a existência) desta variável de
ambiente. como o nome sugere, está sujeito a alterações em qualquer altura.
Aos comandos nas sequências build-indep, install-indep e binary-indep é passada a opção -i para assegurar
que eles apenas trabalham em pacotes independentes da arquitectura, e aos comandos nas sequências build-
arch, install-arch e binary-arch é passada a opção -a para assegurar que eles apenas trabalham em pacotes
dependentes da arquitectura.
OPÇÕES DESCONTINUADAS
As seguintes opções estão descontinuadas. É muito melhor usar as metas de sobreposição em vez destes.
Estas não estão disponíveis no modo de compatibilidade 10.
--until cmd
Corre comandos na sequência até e incluindo cmd, depois pára.
--before cmd
Corre comandos na sequência antes de cmd, depois pára.
--after cmd
Corre comandos na sequência que vêm depois de cmd.
--remaining
Corre todos os comandos na sequência que ainda estão por correr.
Nas opções em cima, cmd pode ser o nome completo de um comando debhelper, ou uma substring. Irá primeiro
procurar por um comando na sequência que corresponda exactamente ao nome, para evitar qualquer
ambiguidade. Se existirem múltiplas correspondências de substring, será usada a última da sequência.
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.
11.1.6ubuntu2 2018-05-10 DH(1)