17828
Comment: fix language header
|
← Revision 5 as of 2021-09-19 14:45:17 ⇥
17833
pt_BR vocabulário / vocabulary: patrocinador(a) -> padrinho/madrinha
|
Deletions are marked like this. | Additions are marked like this. |
Line 136: | Line 136: |
* [[SponsorChecklist|Lista de verificação para patrocinadores]] | * [[SponsorChecklist|Lista de verificação para padrinhos/madrinhas]] |
Existe documentação nova e interessante sobre empacotamento:
Se você precisa criar rapidamente um pacote, use equivs:
Se você preferir obter bons conhecimentos sobre empacotamento no Debian:
primeiro leia a excelente introdução ao Debian Packaging.
então leia o interessante arquivo PDF incluído no pacote: packaging-tutorial
Traduções: English - Italiano - 简体中文 - Português (Brasil)
Contents
Esta é uma abordagem pragmática para aprender como criar pacotes Debian.
Empacotar para o Debian não é tão difícil. Leia primeiro a introdução para empacotamento no Debian.
Se as informações abaixo não responderem às suas perguntas, procure no Guia de Novos Mantenedores e em Política Debian
O capítulo de gerenciamento de pacotes do Debian da Referência para Desenvolvedores contém muitas informações úteis para lidar com todos os tipos de problemas em que se passa com apt e dpkg .
Se você quiser criar um pacote Debian oficial, verifique se ele ainda não está empacotado.
Se alguém estiver trabalhando no pacote, você deve contatá-lo se você pretende fazer um pacote oficial em conjunto.
Para uma maneira um pouco mais moderna de gerenciar tudo isso, confira git-buildpackage. TODO: escreva esta página sobre git-buildpackage, em vez de quilt, para uma experiência menos barroca e mais familiar.
Compilação inicial
Antes de começar, existem alguns riscos dos quais você deve estar ciente:
ADVERTÊNCIAS:
Todas essas operações são preferencialmente feitas em um ambiente chroot por razões de segurança. pbuilder e sbuild são esses ambientes. Consulte a documentação do pbuilder ou do sbuild.
Running make install em um sistema pode ser um risco para a segurança! Recomenda-se verificar com antecedência que o Makefile não contém nada engraçadinho. Aplicações obscuras/especialmente criadas podem cair neste caso.
NÃO execute make install, a menos que você esteja absolutamente seguro em fazer isso (verifique o alvo da instalação do makefile). Este é um risco para segurança e você pode arriscar-se a quebrar e/ou comprometer seu sistema.
Passos:
- tente compilar o pacote, mas não o instale.
- a maioria das falhas de compilação será o resultado de falhas de dependência (normalmente, na maioria das vezes, estão faltando pacotes *-dev)
- preste atenção em cada pacote novo que você precisava instalar para compilação
- alguns dos pacotes que já estavam instalados no seu sistema também podem ser necessários (nota: objdump -p | grep NEEDED mostrará exatamente as bibliotecas necessárias)
- estes pacotes acabarão na lista de dependências de compilação do pacote
- observe as peculiaridades e os truques necessários para que o pacote compile (arquivos perdidos, modificações de arquivos, etc.), você precisará reproduzir mais tarde nas regras de compilação do pacote
- Se você acha que precisa de software específico que ainda não está empacotado, certifique-se de que:
- o software necessário não está presente em outro pacote
o pacote não está em trabalho de empacotamento no (ITP (Intent To Package) está pendente)
você tem certeza de que não está empacotado? Você também pode verificar outras distribuições baseadas em Debian.
É melhor criar uma cadeia de chroot para criar a aplicação. Isso mitiga problemas de segurança e corrupção do sistema. Além disso, garante que as alterações locais na sua máquina não interferirão com a compilação.
If the package compiles, then it means you may have figured out all the dependencies. Don't worry, this will be checked later in a chroot environment. Try the application in a chroot environment (some things might be needed in the chroot jail - for example, proc may need to be mounted, sys to be mounted, etc.). Broken installation scripts are, unfortunately, very common and you probably don't want to run a test installation yet. You might prefer doing the tests in a qemu virtual machine in snapshot mode - changes are not permanent in snapshot mode and you can keep you development machine safe from malicious/broken makefiles.
''Debianização''
Após a primeira compilação, é hora de criar a parte específica Debian do pacote.
Debianize o pacote usando dh_make ou uma das outras ferramentas de empacotamento automático.
Arquivo debian/control: Adicione ao Build-Depends (às vezes até no Build-Depends-Indep) a lista de pacotes necessários para serem instalados para o aplicativo para compilar (lembre-se da lista feita anteriormente). Você deve deixar de fora os pacotes listados em /usr/share/build-essential/essential-packages-list ou /usr/share/build-essential/list e também excluir qualquer pacote listado como dependências por qualquer desses pacotes.
Arquivar debian/rules: se qualquer curvatura foi feita, então:
- automatize as curvas e as mudanças necessárias para serem feitas no arquivo debian/rules sob um patch target
- certifique-se de que haverá um unpatch target que reverte todas as alterações feitas no patch target
- faça o clean target depender do unpatch target
- faça o build target depender do patch target
Revise cada um dos arquivos de modelo (debian/*.ex). Se o seu pacote precisar desse recurso, personalize o arquivo conforme necessário e renomeie-o sem o ".ex".
Exclua todos os modelos desnecessários. Não se preocupe, eles podem ser restaurados a qualquer momento com "dh_make -a".
Certifique-se de que todos os diretórios em que você colocará os arquivos serão listados no arquivo debian/dirs sem uma barra diagonal (/).
Certifique-se de que os arquivos estão instalados no local apropriado (em um diretório, não no sistema raiz). Tenha cuidado com o alvo da instalação do makefile do aplicativo. Se o aplicativo usar autoconf e automake, pode ser suficiente para definir a variável de ambiente DESTDIR, por exemplo, "make DESTDIR=$(CURDIR)/debian/packagename". (dh_make irá configurar isso automaticamente.)
Nota: muitas vezes o pacote upstream irá instalar arquivos em /usr/local. "NÃO INSTALE QUALQUER ARQUIVO AQUI".
Compilação inicial do pacote
TODO: adicionar notas
Construindo pacotes do Debian
Para garantir que um pacote Debian atenda todas as dependências de compilação e não seja influenciado por nada específico para o ambiente do usuário, os pacotes devem ser criados em um ambiente chroot. Ferramentas como pbuilder podem ser usadas para isso.
Ao trabalhar em um pacote, uma recompilação mais rápida pode ser feita com 'debuild'. Mas, então, todas as dependências de compilação devem ser satisfeitas na instalação onde o pacote foi construído. Todos os pacotes necessários podem ser instalados automaticamente com apt-get build-dep. Um exemplo completo para a construção do pacote foo parece assim: