Criando um pacote DEB manualmente

Este é um tutorial destinado as pessoas que desejam criar seu próprio pacote DEB e não encontram um material simples para elucidar esta tarefa.

[ Hits: 186.013 ]

Por: Rafael Brianezi da Silva em 08/08/2007


Criando passo-a-passo um pacote DEB



A finalidade de um pacote deb é realizar tarefas como: instalação de aplicativos, instalação de ferramentas, codecs, plugins, fazer configurações, etc.

Veja como é simples criar um pacote deb seguindo este exemplo passo-a-passo:

Passo 1 - Definir exatamente o objetivo do pacote é uma das etapas mais importante de todo processo. Para este simples exemplo será criado um pacote deb, que irá automaticamente colocar um arquivo chamado script-raf, dentro diretório /usr/lib/cups/filter.

Passo 2 - Para dar início a criação de um pacote precisamos criar um diretório base onde toda a estrutura do pacote será montada, lembrando-se que é aconselhável que o nome deste diretório seja sugestivo em relação à funcionalidade do pacote. Para este exemplo o diretório base será chamado de "pacteste", e este será criado dentro do diretório /tmp.

Comando necessário:

Criando o diretório pacteste:

# mkdir /tmp/pacteste

Passo 3 - Após criar o diretório pacteste, vamos criar dentro dele o diretório principal do pacote, que obrigatoriamente deverá ser chamado de DEBIAN (o nome do diretório deverá ser escrito em maiúsculo). Este é o diretório que conterá os arquivos de controle do pacote.

Comandos necessários:

Criando o diretório principal chamado DEBIAN:

# mkdir /tmp/pacteste/DEBIAN

    Próxima página

Páginas do artigo
   1. Criando passo-a-passo um pacote DEB
   2. Entendendo o arquivo de controle (control)
   3. Criando um arquivo de controle (control)
   4. Criando a estrutura de diretórios do pacote
   5. Criando o pacote DEB
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Integração Contínua com Jenkins - Instalação (Parte 1)

Editando PDF com Inkscape

Anthares, um sistema voltado para o usuário final

Introdução ao OpenLDAP com o JXplorer

CUPS + Jasmine Ubuntu Server 10.04 LTS (gerenciador de impressões e relatórios de impressão)

  
Comentários
[1] Comentário enviado por scoob em 08/08/2007 - 07:13h

Só tenho uma palavra para definir seu trabalho:

"Qualidade"

Parabéns!!!

[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.

[]s

[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.

Bom texto.

[4] Comentário enviado por removido em 08/08/2007 - 11:26h

Muito bom amigo!
Parabéns!

[5] Comentário enviado por Felipe16 em 08/08/2007 - 11:31h

Muito legal. Há tempos que eu queria saber como se faz pacote .de
vlws pelo artigo

[6] Comentário enviado por TSM em 08/08/2007 - 20:08h

Legal seu artigo, muito bom.


[7] Comentário enviado por edirlf em 08/08/2007 - 23:28h

Muito massa esse artigo. Da minha parte, parabéns!!!
Ficou 10.

[8] Comentário enviado por mbsalgueiro em 13/08/2007 - 21:39h

Show seu tuto cara!!! parabens!!!!!!!
precisamos de mais como esse!!!

[9] Comentário enviado por Tilzao em 02/10/2007 - 13:18h

Show de Bola ! Me ajudou um montão !!!
Valeu !

[10] Comentário enviado por gabrielsp em 23/10/2007 - 15:47h

Parabéns! Muito bom! =D

[11] Comentário enviado por borisam em 22/09/2008 - 19:49h

Legal, estava procurando um tutorial assim, simples e prativo para começar.

Obrigado.

[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)

Abraços.

[13] Comentário enviado por hugutux em 11/08/2009 - 14:46h


Legal seu artigo, muito bom.

[14] Comentário enviado por chmod000 em 18/09/2009 - 16:32h

Parabéns pelo artigo! Realmente muito bom.

Aliás, é um dos primeiros artigos que sigo do início ao fim sem ter problemas.... uahuahuah já até criei meu .deb

Preciso só de mais umas dicas.

1) Como faço para instalar no menu do gnome, a partir do .deb gerado, um inicializador para o programa que criei?

2) Tem alguma forma de automatizar a instalação das dependências, ou isso só o apt faz?

Vou continuar pesquisando aqui, mas se você puder postar a resposta eu agradeço.

[]'s

[15] Comentário enviado por chmod000 em 18/09/2009 - 16:52h

uauhauhauau


Eu perguntei, e eu mesmo respondo...

É tudo na estrutura de diretórios! Com direito a ícone e tudo mais... (só falta a documentação)

Valeu raf-tiger!!!!!


--------------------------------------------8><--------------------------------------
$ ls -lhR twittator-package/
twittator-package/:
total 12K
drwxr-xr-x 2 feijo feijo 4,0K 2009-09-18 16:19 DEBIAN
drwxr-xr-x 3 feijo feijo 4,0K 2009-09-17 22:28 etc
drwxr-xr-x 4 feijo feijo 4,0K 2009-09-18 16:36 usr

twittator-package/DEBIAN:
total 12K
-rw-r--r-- 1 root root 317 2009-09-18 16:19 control
-rwxr-xr-x 1 root root 185 2009-09-18 16:17 postinst
-rwxr-xr-x 1 root root 160 2009-09-18 16:17 postrm

twittator-package/etc:
total 4,0K
drwxr-xr-x 3 feijo feijo 4,0K 2009-09-17 22:28 xdg

twittator-package/etc/xdg:
total 4,0K
drwxr-xr-x 2 feijo feijo 4,0K 2009-09-17 22:28 autostart

twittator-package/etc/xdg/autostart:
total 4,0K
-rw-r--r-- 1 feijo feijo 334 2009-09-17 22:28 twittator.desktop

twittator-package/usr:
total 8,0K
drwxr-xr-x 2 feijo feijo 4,0K 2009-09-17 21:14 bin
drwxr-xr-x 5 root root 4,0K 2009-09-18 16:45 share

twittator-package/usr/bin:
total 4,0K
-rwxr-xr-x 1 root root 1,8K 2009-09-18 10:57 twittator.sh

twittator-package/usr/share:
total 12K
drwxr-xr-x 2 root root 4,0K 2009-09-18 16:46 applications
drwxr-xr-x 2 root root 4,0K 2009-09-18 16:41 menu
drwxr-xr-x 2 root root 4,0K 2009-09-18 16:41 pixmaps

twittator-package/usr/share/applications:
total 4,0K
-rw-r--r-- 1 root root 160 2009-09-18 16:46 twittator.desktop

twittator-package/usr/share/menu:
total 4,0K
-rw-r--r-- 1 root root 188 2009-09-18 16:41 twittator

twittator-package/usr/share/pixmaps:
total 8,0K
-rw-r--r-- 1 feijo feijo 6,9K 2009-09-18 16:40 twittator.xpm

[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?

desde já agradeço!
abraços

[17] Comentário enviado por removido em 19/10/2009 - 23:39h

Muito Bom.
Continue Assim.

[18] Comentário enviado por removido em 07/11/2009 - 09:06h

Excelente artigo,parabéns.

[19] Comentário enviado por yermandu em 19/03/2010 - 21:23h

Ta massa o artigo, falando nisso ja vou preparar a receita

[20] Comentário enviado por anderson1277 em 23/05/2010 - 19:33h

Vlw pelo tuto cara

[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

Nick Lima

[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.

Agradeço a ajuda.

[23] Comentário enviado por fs.schmidt em 21/05/2011 - 00:09h

Parabéns pelo artigo !! Muito bem explicado e me ajudou bastante. VivaoLinux é uma grande comunidade graças a usuários como você.


[24] Comentário enviado por gudrade em 26/06/2011 - 15:13h

Parabéns pelo ótimo artigo! Irá me ajudar muito.

[25] Comentário enviado por user_debian em 19/03/2013 - 17:07h

Como faz para criar o atalho no menu após a instalação do pacote?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts