Passo 7 - Após ter criado toda a estrutura indicada no passo anterior, finalmente podemos aplicar ao diretório raiz (pacteste), o comando necessário para que, a partir deste diretório, seja gerado o pacote deb que é o nosso objetivo principal.
Sintaxe do comando:
dpkg-deb -b <caminho absoluto do diretório base> <local onde o pacote deve ser gerado>
Comando para gerar o pacote do exemplo:
# dpkg-deb -b /tmp/pacteste /tmp
O resultado deste comando será um arquivo chamado pacote-raf_0.1_i386.deb dentro do diretório /tmp.
Para testar se o pacote realmente funciona, basta utilizar o seguinte comando:
Sintaxe do comando:
dpkg -i <nome do pacote>
Uma outra dica interessante é você pegar um pacote já criado, desmontá-lo e analisar como a estrutura foi criada. Para isso veja os seguinte comandos:
Comando para extrair o conteúdo de um pacote deb para dentro de um diretório:
# dpkg-deb -x <nome_do_Pacote.deb> /tmp/pacote
Comando para extrair o arquivo de controle de um pacote deb:
[2] Comentário enviado por tjpp em 08/08/2007 - 09:03h
?comentario=
No final da página 4 tem um erro: se o script-raf existir e for referenciado por outro pacote, ele não será gravado: o dpkg retornará erro, se não for usado o --force-overwrite (você teria que acrescentar o Replaces: no control).
Outro ponto importante é que você não tocou no problema de como explicitar as dependências. Eu achei o tutorial bem legal, mas pacotes criados com ele podem quebrar o sistema ou mesmo não funcionar (já que a dependência não foi instalada). O exemplo que você deu, exceto pelo que eu citei no primeiro parágrafo) vai funcionar, mas pacotes binários, ou para o X, podem dar problemas.
[3] Comentário enviado por tenchi em 08/08/2007 - 10:22h
Legal.
Uma dica para quem não quer criar toda a a árvore de diretórios na mão é o uso da opção DESTDIR= ou PREFIX=, nos programas que usam o autoconf e o cmake.
como em:
$ make install DESTDIR=/tmp/pacote
Se não funcionar, tente
$ make install PREFIX=/tmp/pacote
Fico com uma certa raiva quando nenhum destes funcionam, pois acho que não custa nada o desenvolvedor utilizar uma ferramenta padrão (autotools ou cmake) para facilitar o manuseio do código-fonte do seu programa. Aí tem uns que inventam e criam uns scripts que ninguém entende...
Boa dica mesmo. Usei o ubuntu durante uma época, e precisei muito de um tuto assim, mas não achei. O problema é que nem o próprio checkinstall, que cria um pacote um tanto quanto grosseiro, não é capaz de criar um pacote deb com todos os recursos, ou a maioria destes.
[12] Comentário enviado por Journeyman em 29/01/2009 - 16:57h
Muito boa.
Só um complemento que me foi muito útil.
Dentro da pasta DEBIAN da pra colocar, além do control mais alguns arquivos para função especificas
preinst - shell script para ser executado antes da cópia dos arquivos
postinst - shell script para ser executado DEPOIS da cópia dos arquivos
prerm - shell script para ser executado antes da remoção do pacote
postrm - shell script para ser executado DEPOIS da remoção do pacote
Todos tem que ter chmod +x (permissão de execução)
[16] Comentário enviado por brunojti em 23/09/2009 - 17:10h
Cara, ótimo tutorial.
Eu consegui fazer um .deb pro "DBDesigner" perfeitamente...
porém a instalação do DBDesigner exige que uma biblioteca seja instalada antes, e um arquivo precisa ser executado...
existe uma maneira em que eu consiga automatizar todo o processo pelo .deb?
[21] Comentário enviado por CotidianoLinux em 15/08/2010 - 16:49h
Sou um novato no mundo #Linux, estou usando o Ubuntu 10.04 e estava tentando criar um pacote .deb para um shell script que eu adaptei, o intuito dele é randomizar os papéis de parede. Estou usando .sh juntamente com zenity e estava querendo fazer um pequeno pacote de instalação para divulgar o script para a comunidade Linux. Achei muito bom o seu tutorial, deu pra entender como criar um pacote Debian facilmente. Vlw
[22] Comentário enviado por onjahyr em 07/12/2010 - 20:07h
Ressucitando o tópico, alguém saberia como faço para criar o link no menu do Gnome (Ubuntu 10.10) para, ao clicar, seja solicitado a senha de root e em seguida abrir meu programa, bem como um ícone para este link? Meu programa configura o Grub e é necessário executar como root.