Í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 helps to build the Debian package from the upstream source.
Normally, this is done as follows:
The upstream source is obtained as a tarball from a remote web site or a cloned work tree using “git clone”.
debmake is typically invoked in the source directory without any argument.
Also, debmake can be invoked with an argument. This argument can be URL for a tarball hosted on a remote web site or for a source code accessed by “git clone”; or local PATH to the tarball or the source code.
Arguments to -b, -f, and -w options need to be quoted to protect them from the 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 make a native source package without .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.
set e-mail address
A predefinição é obtida a partir do valor da variável de ambiente $DEBEMAIL.
set the fullname
A predefinição é obtida a partir do valor da variável de ambiente $DEBFULLNAME.
set additional “dh --with” option arguments in 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).
generate extra configuration files as templates (default: 2)
Please note debian/changelog, debian/control, debian/copyright, debian/rules, and debian/source/format are required configuration files to build a modern Debian binary package.
The number determines which configuration templates are generated.
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.
For a well behaving source, you can build a good-for-local-use installable single Debian binary package easily with one command. Test install of such a package generated in this way offers a good alternative to the traditional “make install” command installing into the /usr/local directory since the Debian package can be removed cleanly by the “dpkg -P '…'” command. Here are some examples of how to build such test packages.
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:
For a typical Python (version 3) module in the package-version.tar.xz archive:
For a typical Perl module in the package-version.tar.xz archive:
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).