quarta-feira, 15 de janeiro de 2014

Como criar pacotes .deb no Ubuntu (Debian)

Certo dia tive interesse em criar um pacote de instalação para um software para linux que havia desenvolvido. Como o ambiente era ubuntu, então decidi criar um pacote .deb. Percebi que é bastante simples. Pré-Requisitos: É aconselhável que o pacote seja criado em um diretório base, no qual toda a sua estrutura será montada. No mínimo, deve existir, dentro do diretório base, o arquivo "control" dentro da pasta DEBIAN. Esta pasta (DEBIAN) contém todos os arquivos de controle do pacote. O software chama-se "Plugsec TK Firmware Server", e é composto pelos seguintes arquivos (com seus caminhos):
tkfirmwareserver: /etc/init.d/tkfirmwareserver
firmwareserver: /usr/local/sbin/firmwareserver
firmwareserver.conf: /etc/firmwareserver.conf
Para criarmos um pacote de instalação .deb é necessário criar uma estrutura de pastas, conforme os passos a seguir: 1 - Crie uma pasta em /tmp com o nome "pacote-teste". Ela será nossa pasta base.
$ mkdir /tmp/pacote-teste
2 - Entre na pasta /tmp/pacote-teste
$ cd /tmp/pacote-teste
3 - Crie a pasta /tmp/pacote-teste/DEBIAN e acesse-a
$ mkdir /tmp/pacote-teste/DEBIAN
$ cd /tmp/pacote-teste/DEBIAN/
Esta pasta conterá os controles para a criação de um pacote de instalação .deb 4 - Crie o seguinte arquivo: /tmp/pacote-teste/DEBIAN/control, pode ser com qualquer editor de texto.
$ vi /tmp/pacote-teste/DEBIAN/control 
Este é o principal arquivo do pacote, pois nele será informado todas as diretivas de controle do pacote, tais como: nome do pacote, versão, mantenedor do pacote e etc. Ele deve ficar semelhante a este:
Package: TK-Firmware-Server
Priority: optional
Version: 1.3.0.186
Architecture: i386
Maintainer: Tiago Sousa Rocha
Installed-Size: 26
Depends:
Description: Servidor de firmware para os equipamentos da linha Plugsec TK fabricados pela Zenite Tecnologia e Teleinformática Ltda.
Package - Campo destinado ao nome do pacote a ser criado. Version - Campo destinado ao número referente a versão do pacote. Maintainer - Campo destinado ao nome e email do responsável pela criação pacote. Architecture - Campo destinado a informar qual ou quais arcteturas o pacote compatível. Description - Campo destinado a descrição do pacote. 5 - Opcionalmente, criaremos os seguintes arquivos na pasta DEBIAN, são eles: preinst, prerm, postinst e postrm Estes arquivos nada mais são do que scripts (Exemplo: #!/bin/bash) que serão executados antes e depois da instalação ou remoção do pacote a ser criado. preinst - Este arquivo será executado antes da instalação do pacote. Muito utilizado quando se deseja parar serviços importantes antes de efetivamente começar a instalação do pacote.
#!/bin/bash
echo 'Executando o script preinst.'
prerm - Este arquivo será executado antes da desinstalação do pacote.
#!/bin/bash
echo 'Executando o script prerm.'
6 - Agora que já temos os nossos arquivos de controles do pacote, criaremos a estrutura de pastas e arquivos. Temos, para nosso exemplo, os seguintes arquivos: tkfirmwareserver, firmwareserver e firmwareserver.conf. Primeiramente vamos estruturar o arquivo firmwareserver.conf. Este arquivo deve estar no seguinte caminho: /etc/firmwareserver.conf. Então, na raiz da nossa pasta base (/tmp/pacote-teste) criaremos a pasta etc e colocaremos dentro dela o arquivo firmwareserver.conf.
$ cd /tmp/pacote-teste
$ mkdir etc
$ cd etc
$ vi firmwareserver.conf
Desta forma a nossa pasta base representará a raiz do sistema de arquivos do linux (Debian). Agora vamos criar o nosso pacote de instalação .deb. Execute os seguintes comandos:
$ cd /tmp
$ dpkg-deb -b pacote-teste
Pronto o pacote foi criado e está na pasta /tmp/

Nenhum comentário:

Postar um comentário