Criando pacotes debian

Nova arrumação… AGUARDEM
24 de junho de 2010
Vida de programador
29 de fevereiro de 2012

Esses dias no serviço, me foi incumbido a tarefa de criar os pacotes debian de alguns produtos que temos na empresa.

Esses pacotes consistiam em uma aplicação PHP, uma library em python e uma library em shell-script.

Depois de muito buscar e chorar feito criança pequena, porque nada resolvia o meu problema, finalmente consegui.

Então segue um pequeno tutorial de como fazer um pacote debian sem muita frescura, nesse tutorial não iremos abranger a assinatura do pacote com chave PGP, e nem a criação de pacote debian utilizando Makefile.

Obviamente que você já tem o que precisa ser instalado e já sabe aonde deve ser instalado.

Primeiro você deve criar uma pasta com o nome do seu pacote mais a versão:

<package_name>-<version>

Nota: Sempre usar minusculas e os caracteres permitidos são: alfanuméricos, ‘+’ e ‘-‘.


rzamana@rzamana:~/wordpress$ mkdir package-1.0
rzamana@rzamana:~/wordpress$ ls -l
total 4
drwxr-xr-x 2 rzamana rzamana 4096 2011-08-04 23:11 package-1.0

Dentro desta pasta, irá ficar todos os arquivos juntamente com a arvore de diretórios desde a raiz do seu código, no caso da minha library para ser instalada:


rzamana@rzamana:~/wordpress$ cd package-1.0/
rzamana@rzamana:~/wordpress/package-1.0$ tree
.
└── usr
.....└── local
...........└── lib
................└── package
.......................├── libs.py
.......................└── my_code.py
4 directories, 2 files

Todo esse diretório deve ter as permissões necessárias e o usuário correto. No caso acima, as pastas usr, local, lib tem como usuário ‘root’ grupo ‘root’.

Agora vem a parte do empacotamento.
Crie uma pasta DEBIAN (em maiusculo mesmo), e dentro dessa pasta o arquivo de configuração ‘control’.
Esse arquivo de configuração irá dizer para que serve o seu pacote, qual grupo se enquadra e quais são as suas dependências.

No caso acima o arquivo control, ficaria assim:

Source: package
Section: library
Priority: optional
Maintainer: Rafael Zamana
Depends: python (>=2.5)
Version: 1.0
Homepage: http://www.zamana.eti.br/
Package: package
Architecture: all
Description: A simple example about how to create a Debian package.

Não vou explicar muito sobre esse arquivo de configuração, se tiverem qualquer duvida sobre ele, acessem: Debian Policy Manual – Control files and their fields ou deixem a duvida nos comentários.

Com isso você será capaz de gerar um pacote simples.

Na pasta fora do pacote, execute o comando build


rzamana@rzamana:~/wordpress$ build package-1.0
dpkg-deb: building package `package' in `package-1.0.deb'.
rzamana@rzamana:~/wordpress$ ls -l
total 8
drwxr-xr-x 4 rzamana rzamana 4096 2011-08-04 23:24 package-1.0
-rw-r--r-- 1 rzamana rzamana 718 2011-08-04 23:30 package-1.0.deb

Com isso já é possivel instalar o pacote através do comando sudo dpkg -i package-1.0.deb

Esse é o jeito “for dummys” de criar um pacote.

Em outro post, irei falar sobre os scripts que rodam antes e depois da instalação (preint, postint).

Abraços.

Os comentários estão encerrados.