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

Seguir você fará você ... Lendo os meus feeds (que essa semana passaram de 1.000), me deparei com um post de Molly sobre o twitter. A questão é a seguinte, mesmo eu
Ubuntu para atualização... Como dito ontem fiquei de olhar mais a fundo sobre as novidades escondidas pelo Ubuntu 8.04 LTS. Algumas coisas aparecem logo de cara. O tracker, ele faz
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,
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
Gráficos com uma ajuda Desenvolvendo um site, me deparei com o seguinte problema: “Isto daqui exige um gráfico de barras para uma melhor visualização” Mas… Como? Não sou conhecedor da biblioteca
Expressões Regulares ... A um tempo eu venho apanhando de Expressões Regulares (RegEx para os íntimos). Afinal, eu vou comprar o Guia Prático hoje, e pretendo juntar isso a minha
Minha Vida A muito tempo atrás eu criei a Categoria Dia-a-Dia para dizer um pouco do meu dia, o tempo passou e isso não se realizou. Bem, não vou
Ubuntu Countdown Como eu sou fã de ubuntu, eu não posso deixar de falar a campanha da Canonical para o lançamento do Ubuntu 9.04. A partir de hoje, vc
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
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