table of contents
other versions
- jessie 9.20150101+deb8u2
- jessie-backports 10.2.5~bpo8+1
- stretch 10.2.5
- testing 12.1
- stretch-backports 12~bpo9+1
- unstable 12.1.1
other languages
other sections
DH(1) | Debhelper | DH(1) |
NOME¶
dh - sequênciador de comandos do debhelperSINOPSE¶
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.
- --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.
EXEMPLOS¶
Para ver quais comandos estão incluídos numa sequência, sem realmente fazer nada:dh binary-arch --no-actEste é 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-barPor 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-delightOutro 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/fooSe o seu pacote usa autotools e você quer refrescar os <config.sub> e config.guess com versões mais recentes a partir do pacote autotools-dev durante a compilação, você pode usar alguns comandos fornecidos pelo autotools-dev que o automatizam, como isto.
#!/usr/bin/make -f %: dh $@ --with autotools_devPor predefinição, as ferramentas Python não são accionadas, devido às alterações contínuas nessa área. (Antes do nível de compatibilidade v9, o dh corre o dh_pysupport.) Aqui está como usar o dh_python2.
#!/usr/bin/make -f %: dh $@ --with python2Aqui 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_buildAqui 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=srcE 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=buildSe o seu pacote poder ser compilado em paralelo, você pode suportar a compilação em paralelo como se seque. Depois o dpkg-buildpackage -j irá funcionar.
#!/usr/bin/make -f %: dh $@ --parallelAqui 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 installAdicionando 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. 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, 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. 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.- --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.
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.2016-07-24 | 9.20150101+deb8u2 |