Um pacote .deb nada mais é do que um conjunto de instruções para instalação de um ou vários softwares.
Uma forma errônea de descrever um pacote .deb é simplesmente dizer que ele é um software.
Uma forma de verificar isso é justamente ao criar um pacote, ou utilizar a opção -c junto ao comando dpkg
para listar o conteúdo de determinado pacote .deb. Para quem não possui o conhecimento básico para tal
operação, também irei explicar qual a funcionalidade de compactar uma instalação, e automatizar o
processo. No exemplo desta dica, irei criar um script com extensão .sh, e este será copiado para um
diretório como um arquivo executável.
Bom, tudo começou quando em meu trabalho, recebi uma solicitação para criar um pacote .deb e colocar
este no repositório local. Inicialmente os programadores tinham que instalar o Eclipse (IDE para
programação, focado em JAVA, porém possui suporte a outras linguagens de programação) utilizando um
pacote .tar.gz. Apesar de básico, nenhum programador é obrigado a utilizar a linha de comando do
Gnu/Linux, a partir daí, criava um problema, pois existia uma demora ao chamar o suporte para fazer algo
relativamente simples.
Encare essa criação de um pacote como uma automatização da instalação, pois caso exista alguma
dependência, esse pacote resolverá de maneira fácil.
A estrutura do pacote precisa conter os seguintes diretórios:
- pacote
- pacote/DEBIAN
- pacote/usr/sbin
O primeiro diretório, nomeado como "pacote", é o diretório principal, a raiz. O diretório "DEBIAN", se
encontra dentro do diretório principal "pacote". O diretório usr/sbin também se encontra dentro do diretório
principal, e cada um possui uma função diferente que será explicada abaixo.
- pacote: Esse diretório tem por função, ser o diretório raiz, que serve como base para todos os outros
que estão dentro deste.
- DEBIAN: Este diretório conterá um arquivo chamado control, que necessita de algumas informações
sobre o pacote para a instalação.
- usr/sbin - Este diretório foi especificado, para que qualquer script ou arquivo dentro deste diretório
será copiado na instalação para /usr/sbin do sistema.
Se ficou confuso, vamos realizar a prática para um melhor entendimento.
Faça o login de root, utilizando o comando su ou sudo su, então inicie:
# mkdir -p pacote/DEBIAN
# mkdir -p pacote/usr/sbin
Após criar o pacote e seus sub-diretórios, em qualquer diretório que você deseje, crie e acesse o arquivo
control dentro de pacote/DEBIAN:
# vim pacote/DEBIAN/control
Defina este conteúdo:
Package: DEFINA AQUI O NOME DO PACOTE
Priority: optional
Section: misc
Maintainer: DEFINA SEU NOME AQUI
Architecture: O TIPO DE ARQUITETURA, i386, all, OU QUALQUER OUTRA
Version: DEFINA A VERSÃO AQUI
Depends: DEFINA AS DEPENDÊNCIAS QUE ESTE PACOTE POSSUI
Description: UMA DESCRIÇÃO DO PACOTE
Segue o meu arquivo control:
Package: pacote
Priority: optional
Section: misc
Maintainer: Leonardo Damasceno
Architecture: all
Version: 1.0
Depends: sun-java6-jre, sun-java6-jdk, sun-java6-bin
Description: Pacote para instalação do Eclipse
Nosso pacote está quase pronto. Agora copie o arquivo executável para pacote/usr/sbin, pois quando o
pacote for instalado, o executável será copiado para o diretório /usr/sbin do seu sistema.
Crie o pacote da seguinte forma:
# dpkg -b pacote pacote_1.0.deb
Agora instale o pacote que as dependências serão automaticamente baixadas, o arquivo executável será
copiado e tudo funcionará perfeitamente.
Para instalar use:
# dpkg -i pacote_1.0.deb