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

Minha pagina, meu blog, m... Minha vida está um tanto agitada, ainda pensando nos problemas que estão me acontecendo (note querendo quebrar, continuar pagando divida, entre outros). Mas o que eu realmente
Ubuntu para atualização O dia começou calmo, existiam algumas atualizações para fazer no meu ubuntu, mas nada muito sério. Quando eu olho direito, vejo que eu já posso atualizar o
Multiple Blogroll WordPre... Use how manys blogroll do you want in your site, and put everything your place. Just put the name of link category that you like to show,
Pidgin sem notificação Quem instalou o ubuntu 9.04 Jaunty Jackalope, se deparou com uma coisa um tanto quanto irritante… A atualização do pidgin. O pidgin para que nunca ouviu falar,
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
Ano interessante De vez em quando eu acabo reclamando que no Brasil não tem eventos interessantes para programadores… Estou me sentindo acuado, pois, este ano parece de longe ser
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
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
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
OpenSuse Thumbleweed e So... Minhas muitas idas e vindas de sistema operacional, foi devido ao problema do SonicWall netExtender. O netExtender é um cliente de VPN, próprio para Firewall SonicWall, uso