Índice
debmake [-h] [-n | -a package-version.orig.tar.gz | -d | -t ] [-p package] [-u version] [-r revision] [-z extension] [-b "binarypackage[:type], …]" [-e foo@example.org] [-f "firstname lastname"] [-i "buildtool" | -j] [-m] [-o file] [-q] [-s] [-v] [-w "addon, …"] [-x [01234]] [-y] [-T] [-B]
debmake ajuda a compilar um pacote Debian a partir da fonte do autor. Normalmente, isto faz-se como se segue:
Make sure to protect the arguments of the -b, -f, and -w options from shell interference by quoting them properly.
Recently, the upstream may release its source code using the Git repository only without the tarball. debmake can offer a way to work with this situation:
Other tools also offer ways to obtain the upstream tarball and creating required symlink to build a Debian package depending on your workflow. For example, origtargz, mk-origtargz, git-deborig, and pristine-tar.
cria um pacote fonte Debian nativo sem o .orig.tar.gz. Isto cria um pacote fonte Debian de formato “3.0 (native)”.
Se você está a pensar em empacotar uma árvore fonte específica Debian com debian/ nela em um pacote nativo Debian, por favor pense o contrário. Você pode usar os comandos “debmake -d -i debuild” ou “debmake -t -i debuild” para criar um pacote Debian não-nativo usando o formato fonte Debian “3.0 (quilt)”. A única diferença é que agora o ficheiro debian/changelog tem de usar o esquema de versão não-nativo: versão-revisão. O pacote não-nativo é mais amigável às distribuições baseadas nesta.
use o tarball fonte do autor diretamente. (-p, -u, -z: sobreposto)
O tarball do autor pode ser especificado como pacote_versão.orig.tar.gz e tar.gz. Para outros casos, pode ser tar.bz2, ou tar.xz.
Se o nome do tarball de autor especificado conter letras maiúsculas, o nome do pacote Debian é gerado ao converte-las para letras minúsculas.
Se o argumento especificado for o URL (http://,
https://, ou ftp://) para o tarball do
autor, este é descarregado do URL usando wget ou curl.
corra primeiro o comando equivalente a “make dist” para gerar o tarball de autor e use-o.
O comando “debmake -d”
destina-se a correr no directório package/ que hospeda
o VCS do autor com o sistema de compilação a suportar equivalentes ao
comando “make dist”.
(automake/autoconf, …)
corra o comando “tar” para gerar o tarball de autor e use-o.
O comando “debmake -t” destina-se a correr no directório package/ que hospeda o VCS do autor. A menos que você forneça a versão do autor com a opção -u option ou com o ficheiro debian/changelog, é grado um instantâneo da versão do autor no formato 0\~%y%m%d%H%M, ex., 0~1403012359, a partir da hora e data UTC. O tarball gerado exclui o directório debian/ encontrado no VCS do autor. (Também exclui directórios típicos do VCS: .git/, .hg/, .svn/, .CVS/.)
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.
invoca "buildtool" no final da execução. buildtool pode ser “dpkg-buildpackage”, “debuild”, “sbuild”, etc.
A predefinição é não executar nenhum programa.
Definir esta opção define automaticamente a opção --local.
corre dpkg-depcheck para julgar dependências de compilação e identificar caminhos de ficheiros. Os ficheiros de relatório estão no directório pai.
lê parâmetros opcionais de ficheiro. (Isto não é para usar todos os dias.)
O conteúdo de ficheiro é fonte como o código Python no final de para.py. Por exemplo, a descrição do pacote pode ser especificada pelo seguinte ficheiro.
para['desc'] = 'program short description' para['desc_long'] = '''\ program long description which you wish to include. . Empty line is space + . You keep going on ... '''
adiciona argumentos extra à opção --with do comando dh(1) como addon em debian/rules.
Os valores addon são listados todos separados por “,”, ex., “-w "python3,autoreconf””.
Para pacotes baseados em Autotools, autoreconf como addon para correr “autoreconf -i -v -f” para cada pacote compilado é o comportamento predefinido do comando dh(1).
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 configuration files as templates. (Please note debian/changelog, debian/control, debian/copyright, and debian/rules are required configuration files to build a Debian binary package.)
O número n 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. (Estes devem funcionar na maioria dos casos. Se a opção -d não funcionar, então tente a opção -t.)
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.gz:
Para um módulo Perl típico no arquivo pacote-versão.tar.gz:
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.
There are some points for 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:
$ DEBUG=spd debmake ...
See README.md in the source for more.
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/.
See also 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), and gbp-pq(1) manpages.