Entre no diretório principal do programa e então execute o seguinte comando:
dpkg-buildpackage -rfakeroot
Isso irá fazer tudo por você, você terá apenas que digitar sua senha PGP secreta duas vezes. Depois disso, você verá quatro novos arquivos no diretório acima (~/debian/):
Esse é o pacote binário completado. Você pode usar dpkg ou dselect para instalar e removê-lo como qualquer outro pacote.
Esse é o código fonte original feito para que, se alguém quiser recriar seu pacote do começo, eles poderão. Ou se eles não estão usando o sistema de empacotamento Debian, mas precisam fazer o download manual do código e compilar.
Esse é um sumário do conteúdo do código fonte. O arquivo é gerado do arquivo
gentoo-0.9.12/debian/control, e é usado quando se desempacota o código com
dpkg-source(1)
. Esse arquivo é assinado com PGP, para que as
pessoas possam ter certeza que ele é realmente seu.
Esse arquivo comprimido contém cada e toda adição que você fez ao código fonte
original, na forma conhecida como "unified diff". Isso é feito e
usado pelo dpkg-source(1)
.
Esse arquivo descreve todas as mudanças feitas na revisão atual do pacote e é usado pelos programas de manutenção do arquivo de FTP Debian para instalar é os pacotes binários e fonte em si. É parcialmente gerado do arquivo é gentoo-0.9.12/debian/changelog e do arquivo .dsc.
Enquanto você trabalha no pacote, comportamentos irão mudar e novos recursos
serão adicionados. Pessoas que fizerem o download do seu pacote podem olhar
nesse arquivo e ver rapidamente o que mudou. Os grandes números são checksums
MD5 para os arquivos mencionados. Pessoas que fizerem o download dos seus
arquivos podem testá-los com md5sum(1)
e se os números não forem
iguais, eles saberão que o arquivo está corrompido ou foi hackeado. Esse
arquivo é assinado com PGP, para que as pessoas possam ter maior certeza de que
é realmente seu.
Com um pacote grande, você pode não querer reconstruir do início tudo de novo a cada vez que você arruma um detalhe no debian/rules. Para propósito de teste, você pode fazer um arquivo .deb sem reconstruir os códigos externos assim:
fakeroot debian/rules binary
Tenha certeza que sua regra `install' não tem a `install-stamp' (é o padrão dos dias atuais), para ter certeza de que o `dh_clean -k` é executado a cada vez. E uma vez terminadas as limpezas, lembre-se de reconstruir seguindo o procedimento correto, para estar apto a enviá-lo corretamente.
Rode lintian(1)
no seu arquivo .changes; esse programa irá checar
por muitos erros de empacotamento. O comando é:
lintian -i gentoo_0.9.12-1_i386.changes
Claro que você deve trocar o nome do arquivo com o nome do arquivo .changes gerado para seu pacote. Se parecer haver alguns erros (linhas iniciando com E:), leia a explicação (as linhas N:), corrija os erros e reconstrua como descrito em Construindo o pacote, Seção 6.1. Se há linhas que comecem com W:, esses são apenas avisos, então você pode ter certeza que seu pacote está ok (mas provavelmente precisa de algum pequeno conserto).
Note que você pode construir o pacote com dpkg-buildpackage e rodar lintian em
apenas um comando com debuild(1)
.
Olhe dentro do pacote usando um gerenciador de arquivos como
mc(1)
, ou descompacte-o num lugar temporário usando
dpkg-deb(1)
. Olhe sempre alerta para arquivos não necessários
tanto no pacote binário como no fonte, em caso de alguma coisa dar errado e
alguma coisa não ser limpada. Dicas: `zgrep ^+++ ./gentoo_0.9.12-1.diff.gz`
dará a você uma lista de suas mudanças/adições nos arquivos fonte, e `dpkg-deb
-c gentoo_0.9.12-1_i386.deb` listará os arquivos no pacote.
Instale o pacote para testar você mesmo, ex: usando o comando
debi(1)
como root. Tente instalar e rodá-lo em máquinas
diferentes e olhar atentamente pelos avisos ou erros na instalação ou execução
do programa.
Depois, quando você construir uma nova versão, você deve fazer o seguinte para assegurar a possibilidade de atualização do pacote:
Agora que você testou seu novo pacote minuciosamente, você precisa enviar os
arquivos para master.debian.org, usando dupload(1)
. Primeiro você
tem de configurar o arquivo de configuração do dupload, ~/.dupload.conf .
Ponha algo assim nele:
package config; $default_host = "ftp-master"; $cfg{"ftp-master"}{"login"} = "yourdebianusername"; $cfg{"non-us"}{"login"} = "yourdebianusername"; 1;
É claro, mude minhas configurações pessoais pelas suas, e leia a página de
manual do dupload.conf(5)
para entender o que cada uma dessas
opções significa.
Então conecte-se à Internet e digite esse comando:
dupload --to master gentoo_0.9.12-1_i386.changes
Dupload irá checar se os checksums md5 dos arquivos batem com os do arquivo .changes, então irá avisar a você para reconstruir o pacote como descrito em Construindo o pacote, Seção 6.1 para poder propriamente enviar.
Dupload irá perguntar sua senha no master.debian.ogr, enviar os pacotes, dar um
pequeno anúncio sobre seu envio em debian-devel-changes@lists.debian.org
se necessário.
Se você mora na Europa, você pode usar alguns outros servidores de envio ao
invés do master. Para detalhes olhe em dupload(1)
,
dupload.conf(5)
e na Referência do Desenvolvedor.
Vamos dizer que um relatório de erro tenha sido preenchido sobre seu pacote, #54321 e ele descreve um problema que você pode resolver. Para criar uma nova revisão do pacote Debian, você precisa de:
Agora vamos considerar uma situação diferente, um pouco mais complicada - uma nova versão externa foi lançada, e claro, você quer empacotá-la. Você precisa fazer o seguinte:
uupdate -u gentoo-0.9.13.tar.gz
Claro, troque esse nome de arquivo pelo nome do arquivo de fonte do seu
programa. uupdate(1)
irá propriamente renomear seu .diff.gz
anterior, e atualizará o novo debian/changelog.
Note que se você configurou `debian/watch' como descrito em watch.ex, Seção 5.6, você pode rodar
uscan(1)
para automaticamente olhar por fontes revisados, faça
download deles, e rode uupdate.
Antes de decidir perguntar em algum lugar público, por favor apenas RTFM. Isso
inclui documentação em /usr/share/doc/dpkg, /usr/share/doc/debian,
/usr/share/doc/package/* e as páginas de manual e de info de todos os programas
mencionados nesse artigo. Quando você receber um relatório de erros (sim,
relatórios atuais de erros!), você saberá que é hora de cavar no Debian Bug Tracking System (Sistema de
Procura de Erros
e ler a documentação de lá, para estar apto a lidar
com esses relatórios eficientemente.
Entrando na lista de Mentores do Debian em debian-mentors@lists.debian.org
você pode se relacionar com desenvolvedores experientes que irão ajudá-lo com
dúvidas que você possa ter. Você pode se inscrever enviando um e-mail para
debian-mentors-request@lists.debian.org
com a palavra `subscribe' no assunto da mensagem.
Se você ainda tem dúvidas, pergunte na lista dos Desenvolvedores Debian em
debian-devel@lists.debian.org
.
Você pode se inscrever nela enviando um e-mail para debian-devel-request@lists.debian.org
com a palavra `subscribe' no assunto da mensagem. Se você é um desenvolvedor
Debian, você deve ser inscrito de qualquer modo.
Mesmo se tudo foi bem, é hora de começar a jogar. Por quê? Porque em poucas horas (ou dias) os usuários de todo o mundo irão começar a usar seu pacote, e se você fez erros críticos você receberá e-mails bomba de numerosos usuários do Debian nervosos... Tô brincando. =)
Relaxe e esteja pronto para relatórios de erro, porque há muito trabalho a ser feito antes de estar totalmente endireitado com as políticas do Debian (mais uma vez leia a documentação real para detalhes. Boa Sorte!
Guia dos Novos Mantenedores Debian
versão 1.0.2, 10 de junho de 2001.joy-mg@debian.org
dockov@zaz.com.br
hellblade@linuxbr.com.br