Índice
Here are some additional explanations for debmake options.
O comando debmake oferece 2 opções de atalho.
O exemplo em cima “Capítulo 5, Empacotamento simples” pode ser feito simplesmente como se segue.
$ debmake -a package-1.0.tar.gz -i debuild
![]() | Dica |
---|---|
Um URL como “https://www.example.org/DL/package-1.0.tar.gz” pode ser usado para a opção -a. |
![]() | Dica |
---|---|
Um URL como “https://arm.koji.fedoraproject.org/packages/ibus/1.5.7/3.fc21/src/ibus-1.5.7-3.fc21.src.rpm” pode ser usado para a opção -a, também. |
The debmake command with the -b option provides an intuitive and flexible method to create the initial template debian/control file. This file defines the split of the Debian binary packages with the following stanzas:
The debmake command also sets an appropriate set of substvars (substitution variables) used in each pertinent dependency stanza.
Vamos citar a parte pertinente do manual do debmake aqui.
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.
O comando debmake com a opção -cc pode fazer um resumo do copyright e licença para a árvore fonte inteira para a saída standard.
$ tar -xvzf package-1.0.tar.gz $ cd package-1.0 $ debmake -cc | less
Com a opção -c, isto fornece um relatório curto.
This test building scheme is suitable for git repositories organized as described in gbp-buildpackage(7), which uses the master, upstream, and pristine-tar branches.
O instantâneo de autor a partir da árvore fonte do autor no VCS do autor pode ser feito com a opção -d se o autor suportar a equivalência “make dist”.
$ cd /path/to/upstream-vcs $ debmake -d -i debuild
Em alternativa, o mesmo pode ser feito coma opção -t se o tarball do autor puder ser feito com o comando tar.
$ cd /path/to/upstream-vcs $ debmake -p package -t -i debuild
A menos que você forneça a versão do autor com a opção -u ou com o ficheiro debian/changelog, é gerado um instantâneo da versão do autor no formato 0~%y%m%d%H%M, ex., 0~1403012359, a partir da data e hora UTC.
Se o VCS do autor estiver hospedado no directório pacote/ em vez do directório upstream-vcs/, o “-p pacote” pode ser saltado.
Se a árvore fonte do autor no VCS conter os ficheiros debian/*, o comando debmake seja com a opção -d ou a opção -t combinada com a opção -i automatiza a criação de pacote Debian não-nativo a partir do instantâneo do VCS enquanto usa estes ficheiros debian/*.
$ cp -r /path/to/package-0~1403012359/debian/. /path/to/upstream-vcs/debian $ dch ... update debian/changelog $ git add -A .; git commit -m "vcs with debian/*" $ debmake -t -p package -i debuild
This non-native Debian binary package building scheme without the real upstream tarball is considered a quasi-native Debian package. See “Secção 11.13, “Empacotamento Debian Quasi-native”” for more details.
Esta é uma funcionalidade experimental.
A geração de um pacote multi-binário funcional requer sempre mais trabalho manual que aquele que dá um pacote binário singular funcional. A compilação de teste da árvore fonte é a parte essencial disso.
Por exemplo, vamos empacotar o mesmo package-1.0.tar.gz (veja “Capítulo 5, Empacotamento simples”) num pacote multi binário.
Invoque o comando debmake com a opção -j para a compilação de teste e a geração do relatório.
$ debmake -j -a package-1.0.tar.gz
Inicie o empacotamento com o comando debmake.
$ rm -rf package-1.0 $ tar -xvzf package-1.0.tar.gz $ cd package-1.0 $ debmake -b"package1:type1, ..."
Compile o pacote Debian com o comando debuild ou seu equivalente.
$ debuild
![]() | Nota |
---|---|
A opção -j para o comando debmake invoca dpkg-depcheck(1) para correr debian/rules sob strace(1) para obter as dependências de biblioteca. Infelizmente, isto é muito lento. Se você conhece as dependências de biblioteca a partir de outras fontes como o ficheiro SPEC na fonte, você pode apenas correr o comando "debmake …" sem a opção -j e correr o comando “debian/rules install” para verificar os caminhos de instalação dos ficheiros gerados. |
Esta é uma funcionalidade experimental.
Quando se actualiza um pacote para o novo lançamento do autor, o comando debmake pode verificar o conteúdo do ficheiro debian/copyright existente contra a situação de copyright e licença da inteira árvore fonte actualizada.
$ cd package-vcs $ gbp import-orig --uscan --pristine-tar ... update source with the new upstream release $ debmake -k | less
O comando “debmake -k” analisa o ficheiro debian/copyright do topo até ao fundo e compara a licença de todos os ficheiros não-binário no pacote actual com a licença descrita na última entrada de padrão de ficheiro correspondente do ficheiro debian/copyright.
Quando editar o ficheiro debian/copyright auto gerado, por favor certifique-se de manter os padrões de ficheiro genérico no topo da lista.
![]() | Dica |
---|---|
Para todos os novos lançamentos do autor, corra o comando “debmake -k” para assegurar que o ficheiro debian/copyright é actual. |
O comando debmake invocado com a opção -P verifica pedantemente ficheiros auto-gerados para texto copyright+licença mesmo que eles estejam com licença permissiva.
Esta opção não afecta apenas o conteúdo do ficheiro debian/copyright gerado por execução normal, mas também os resultados pela execução com as opções -k, -c, -cc, e -ccc.
O comando debmake invocado com a opção -T escreve adicionalmente linhas de comentários tutoriais detalhados. As linhas marcadas com ### nos ficheiros modelo fazem parte das linhas de comentários tutoriais detalhados.
A quantidade de ficheiros modelo gerados pelo comando debmake depende da opção -x[01234].
![]() | Nota |
---|---|
Nenhum dos ficheiros de configuração existentes são modificados pelo comando debmake. |