Criando pacotes debian

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.

Similar Articles

Google Developer Day 2008 Apenas muito pensar, comprei um cartão para internet. O problema aqui foi que eles decidiram não colocar internet, num evento sobre INTERNET, achei meio fora do consenso,
Nova arrumação… A... Estive olhando o blog e percebi que deixei muita coisa de lado. Existem dois posts que eu quero fazer ainda essa semana. Um sobre bash script e
WordPress no blog do MySQ... Que o WordPress é uma excelente ferramenta de blog, isso é indiscutivel. Agora que o Blog do Kaj Arnö da MySQL usava WordPress eu me surpreendi. Me
OpenSuse Recentemente passei para o OpenSuse. Curto muito o mundo Debian e o mundo Ubuntu, mas acho que precisava sair do paradigma. Afinal eu estava num SO fantástico
Inferno Club Com a companhia de @aliceandrade, @paladino, @dgmike fui parar hoje na Augusta no numero 501, onde se localiza o Inferno Club. A idéia principal da noitada era
Mudando de casa Aqueles que normalmente acompanham este blog, perceberam que nos ultimos dias ocorreram certas quedas do site. Explicação:
Campanha Bottoms Os que me conhecem, sabem que eu ando com uma boina com alguns bottoms. Sempre que eu vou a algum lugar onde possue bottoms eu peço ou compro.
Esquecido, sumido, entre ... Eu passei um tempo escrevendo coisas legais nesse blog. Mas eu passei por uma mega transformação, e o blog não me acompanhou. Primeiro que eu tive que
Sete coisas que você pro... Tenho várias idéias sobre posts no meu blog, mas as vezes o que me falta é comprometimento com essa causa. O Galvão me jogou numa que eu
Vida de programador Cada dia que passa me deparo um pouco no meu diferencial como programador, não falo do meu nivel de conhecimento da linguagem (pois conheço pessoas que sabem