Raspberry

Como criar pacote deb para instalação do seu programa

tutorial mod_rewrite | heartbeat ou ucarp | compilar o kernel

Criar pacote deb de seu programa lhe permitirá ter uma instalação rápida e limpa, de modo que o sistema alvo não precise de ambiente de compilação. E isso é ótimo, porque agiliza o processo e permite que você possa enviar o programa para seu cliente mesmo instalar, sem maiores complicações.

Já mostrei nesse outro artigo como criar um instalador para seus programas feitos em Qt. Tem mais uma forma de fazer a instalação, como visto no artigo anterior, mas agora vamos “subindo o nível”, dessa vez criando um pacote para instalar através do gerenciador de pacotes dpkg e para o próximo artigo, deixo uma surpresa.

Modos de criar pacote deb

Dá pra fazer de várias maneiras. Como não é um procedimento de rotina, não faço de cabeça o pacote, então sempre recorro a alguma referência – e isso é o que sempre enfatizo; é importante ter os conceitos, decorar é limitante e demorado. E qual seria a referência? Simples!

Quando instalamos algum programa através do apt, os arquivos baixados ficam em /var/cache/apt/archives. Sempre que esquecer, agora já tem duas opções; ou você recorre a esse artigo, ou repita o processo a seguir.

Copiando um dos arquivos .deb contidos no diretório supracitado, bastará extrair o conteúdo em algum lugar e então usá-lo como referência para criar a estrutura do seu programa:

O comando dpkg com a flag “-X” extrai a estrutura de diretórios de sistema, semelhante à compilação do artigo anterior. O comando dpkg com a flag “-e” extrai o diretório DEBIAN, que contém o arquivo de controle e opcionalmente um arquivo com a somatória md5. Fiz a descompressão de exemplo com o pacote cutecom, um programa de comunicação serial.

Agora temos a estrutura de diretórios raiz e um diretório DEBIAN. Vejamos o conteúdo do arquivo control:

Ótimo, já consegui relembrar tudo! Precisamos de um nome de pacote, versão de software, arquitetura pode ser all, InstalledSize é opcional, Depends é opcional, Suggests é opcional, Priority é opcional, homepage é opcional. Description é opcional. Mas se quiser saber todas as possiblidades, agora que sabemos o nome do arquivo necessário dentro do diretório DEBIAN, basta consultar a documentação. Aqui temos a documentação dessas e de outras propriedades do arquivo control.

Em suma, tudo o que precisamos é da estrutura de diretórios e suas dependências e o diretório DEBIAN com o arquivo de controle para  criar pacote deb:

tree - criar pacote deb

Agora basta descer um nível de diretório e gerar o pacote para instalação:

O arquivo terá o nome definido como parâmetro, mas é ideal que o nome do pacote tenha o nome do diretório a ser compilado. Meu arquivo de controle ficou assim:

Quando instalado, o arquivo xgo.png será colocado na mesma estrutura definida dentro do diretório do pacote, ou seja, nesse caso estará disponível em /tmp.

Para instalar o pacote:

Para obter informações do pacote instalado:

Que retornará algo como:

dpkg -l - criar pacote deb

Para remover:

Agora sabemos criar pacote deb para instalação de nossos programas. Basta então copiar seu programa para outro sistema compatível e instalá-lo desse modo ou como exemplificado no artigo anterior – que aliás, lhe auxiliará a compor o diretório raiz do programa.

Fecharei a série com o próximo artigo, acompanhe!