Criando pacotes Debian (.deb)

S.O: Ubuntu Linux Karmic

Esse pequeno artigo tem o intuito de ensinar a criar um pacote debian,
não entro em detalhes complexos do formato.

O que é um arquivo .deb?

Um pacote debian é um arquivo compactado em um formato específico (ar http://en.wikipedia.org/wiki/Ar_%28Unix%29), bastante similar a um tar.gz ou um .zip, resumindo podemos facilmente descompactá-lo.
dentro desse arquivo você encontra outros 3 arquivos, 2 deles compactados:
* debian-binary: um arquivo gerado automaticamente com o formato do deb.
* control.tar.gz: informações do pacote, como dependência, e scripts pré e pós instalação.
* data.tar ou data.tar.gz ou data.tar.bz2 ou data.tar.lzma: os arquivos da aplicação disponibilizados em endereço absoluto, exemplo: /etc/programa/arquivos/…

Exemplo prático:

Iremos criar um pacote .deb que instala um aplicação que simplesmente irá escrever “Hello World!” no nosso console ao digitarmos o comando exemplo.sh no console.
Para nosso exemplo criaremos a seguinte estrutura de pastas:
/ : pode ser criado em qualquer lugar do seu disco, não precisa ser na raiz do sistema de arquivos.
/source/
/source/usr/
/source/usr/bin/

/source/usr/bin/exemplo.sh : arquivo contendo o código da aplicação, não esqueça de dar direitos de execução nesse arquivo (chmod +x exemplo.sh)
/source/DEBIAN/
/source/DEBIAN/control : arquivo que conterá informações (metadados) sobre o nosso pacote Debian, dependências, etc.

Conteúdo de exemplo.sh:

#!/bin/sh
echo "Hello World!";

Conteúdo de control:

Package: exemplo
Priority: optional
Version: 0.1
Architecture: i386
Maintainer: Alan Daniel Weiss (webcentro)
Depends: dash
Description: Exemplo de criação de um pacote debian que irá instalar o aplicativo /usr/bin/exemplo.sh que escreve "Hello World!" no terminal.

O conteúdo do arquivo control é auto explicativo,
nele estão as informações necessárias para efetuar a instalação do seu pacote,
observe que o campo Depends irá informar as dependências desse pacote, caso possua várias dependecias essas deverão ser separadas com virgula (,).

Criar o pacote

Agora que temos a estrutura do nosso pacote completa devemos executar o comando que irá empacotar tudo isso em um archive .deb,
vá nas raiz do projeto (pasta que contém o diretório source) e digite o seguinte comando:

$ dpkg-deb -b ./source/ .

será criado um arquivo com o nome exemplo_0.1_i386.deb, se quiser você pode abrir esse arquivo com o Gerenciador de Pacotes (compactados) e verificar a estrutura que foi criada.

Instalando, Usando e Removendo a Aplicação

Para instalar seu pacote você pode usar a aplicação gráfica GDEB, ou então executar o comando a seguir:

$ sudo dpkg -i exemplo_0.1_i386.deb

Agora teste a aplicação executando o comando no console em qualquer diretório do seu sistema de arquivos o comando a seguir:

$ exemplo.sh

Para remover use o apt:

$ sudo apt-get remove exemplo

Conclusão:

Criar pacotes debian é muito simples e versátil,
Empacotar um programa torna muito fácil para o usuário final instalá-lo.

Existem outras funcionalidades, como por exemplo scripts de pré instalação e pós, que ficam para um post futuro.

Caso tenha dúvidas fique a vontade em postar comentários, tentarei disponibilizar o código do exemplo caso o wordpress permitir.

ps: Aviso que somente tenho conhecimento do funcionamento de tudo que explico aqui na distribuição Ubuntu, desconheço as características das demais.

  1. No trackbacks yet.

Deixe um comentário