Índice
debmake [-h] [-n] [-p package] [-u version] [-r revision] [-z extension] [-b "binarypackage[:type], …]" [-D value] [-e foo@example.org] [-f "firstname lastname"] [-i [debuild|sbuild|dgit sbuild|gbp buildpackage|dpkg-buildpackage| …]] [-m] [-q] [-v] [-V] [-w "addon, …"] [-x [01234]] [-y] [-B] [URL]
debmake ajuda a compilar o pacote Debian a partir da fonte do autor.
Normalmente, isto faz-se como se segue:
A fonte de autor é obtida como um tarball de um sítio web remoto ou uma árvore de trabalho clonada usando “git clone”.
debmake é tipicamente invocado no directório fonte sem nenhuns argumentos.
E Também, o debmake pode ser invocado com um argumento. Este argumento pode ser URL para um tarball hospedado num sítio web remoto ou para um código fonte acedido por “git clone”; ou PATH local para o tarball ou código fonte.
Argumentos para as opções -b, -f, e -w precisam de ser citados para as proteger da shell.
Outras ferramentas também oferecem maneiras de obter o tarball do autor e criar o link simbólico necessário para compilar um pacote Debian dependendo do seu fluxo de trabalho. Por exemplo, origtargz, mk-origtargz, git-deborig, e pristine-tar.
-n, --native faz um pacote fonte nativo sem .orig.tar.xz
define as especificações do pacote binário por uma lista separada por vírgulas de pares pacotebinário:tipo. Aqui, pacote-binário é o nome do pacote binário, e o tipo opcional é escolhido a partir dos seguintes valores de tipo:
O par de valores dentro de parênteses, tais como (any, foreign), são os valores de estrofe Arquitectura e Multi-Arch definidos no ficheiro debian/control. Em muitos casos, o comando debmake consegue adivinhar bem o tipo de pacotebinário. Se tipo não for óbvio, tipo é definido para bin.
Aqui estão exemplos para cenários típicos de divisão de pacote binário onde o nome do pacote fonte Debian do autor é foo:
Gerando um pacote binário executável foo:
Gerando um pacote binário executável (python3) python3-foo:
Gerando um pacote de dados foo:
Gerando um pacote binário executável foo e um de documentação foo-doc:
Gerando um pacote binário executável foo, um pacote biblioteca libfoo1, e um pacote de desenvolvimento de biblioteca libfoo-dev:
Se o conteúdo da árvore fonte não corresponder à definição para tipo, o comando debmake avisa-o.
define o endereço de e-mail
A predefinição é obtida a partir do valor da variável de ambiente $DEBEMAIL.
define o nome completo
A predefinição é obtida a partir do valor da variável de ambiente $DEBFULLNAME.
define argumentos de opção adicionais “dh --with” em debian/rules
Para pacotes baseados em Autotools, se eles instalarem programas Python (versão 3), definir python3 como addon para o argumento de comando debmake é necessário pois isto não é óbvio. Mas para pacotes baseados em Python pyproject.toml, definir python3 como addon para o argumento de comando debmake não é necessário pois isto é óbvio e o comando debmake define-o automaticamente para o comando dh(1).
gera ficheiros de configuração extra como modelos (predefinição: 2)
Por favor note que debian/changelog, debian/control, debian/copyright, debian/rules, e debian/source/format são ficheiros de configuração necessários para compilar um pacote binário Debian moderno.
O número determina quais modelos de configuração são gerados.
Alguns ficheiros modelo de configuração são gerados com um sufixo extra .ex para facilitar a sua remoção. Para activar isto, renome os seus nomes de ficheiro para aqueles sem o sufixo .ex e edite os seus conteúdos. Os ficheiros de configuração nunca são sobrescritos. Se desejar actualizar alguns dos ficheiros de configuração existentes, or favor renome-os antes de correr o comando debmake e junte manualmente os ficheiros de configuração gerados com os antigos que foram renomeados.
Para uma fonte bem comportada, você pode compilar um pacote binário Debian singular instalável e bom-para-uso-local facilmente com um comando. A instalação de teste de tal pacote gerado deste modo oferece uma boa alternativa ao comando tradicional “make install” que instala no directório /usr/local pois o pacote Debian pode ser removido completamente pelo comando “dpkg -P '…'”. Aqui estão alguns exemplos de como compilar tais pacotes de teste.
Para uma árvore fonte de programa C típico empacotada com autoconf/automake:
Para uma árvore fonte de módulo Python (versão 3) típica:
Para um módulo Python (version 3) típico no arquivo pacote-versão.tar.xz:
Para um módulo Perl típico no arquivo pacote-versão.tar.xz:
O empacotamento pode requerer a instalação de alguns pacotes de ajuda especial adicional.
Apesar do debmake destinar-se a fornecer ficheiros modelo para o maintainer do pacote trabalhar, as atividades actuais de empacotamento são muitas vezes executadas sem se usar o debmake enquanto se referenciam apenas pacotes existentes semelhantes e o “Manual de Política Debian”. É requerido que todos os ficheiros modelo gerados pelo debmake sejam modificados manualmente.
Existem alguns pontos para o debmake:
Existem algumas limitações para quais caracteres podem ser usados como parte do pacote Debian. A limitação mais notável é a proibição de letras maiúsculas no nome do pacote. Aqui está um sumário como um conjunto de expressões regulares:
[-+.a-z0-9]{2,}
[-+.a-z0-9]{2,}
[0-9][-+.:~a-z0-9A-Z]*
[0-9][+.~a-z0-9A-Z]*
Veja a definição exacta em “Capítulo 5 - Ficheiros de controle e seus campos” no “Manual de Política Debian”.
O debmake assume casos de empacotamento relativamente simples. Assim todos programas relacionados com o interpretador são assumidos como sendo “Architecture: all”. Isto nem sempre é verdade.
Por favor reporte bugs ao pacote debmake usando o comando reportbug.
O caractere definido na variável de ambiente $DEBUG determina o nível de resultados no relatório.
Use esta funcionalidade como:
[base_dir] $ export DEBUG=spd; debmake ...
or
[base_dir] $ debmake -D spd ...
Veja README.md na fonte para mais.
Copyright © 2014-2026 Osamu Aoki <osamu@debian.org>
O pacote debmake-doc fornece o “Guia para Maintainers Debian” em formato de texto simples, HTML e PDF sob o directório /usr/share/doc/debmake-doc/.
Veja também os manuais licensecheck(1), lrc(1), dpkg-source(1), deb-control(5), debhelper(7), dh(1), dpkg-buildpackage(1), debuild(1), quilt(1), dpkg-depcheck(1), sbuild(1), gbp-buildpackage(1), e gbp-pq(1).