Manual
do
Maker
.
com
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.
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:
mkdir ~/lab
cd lab
cp /var/cache/apt/archives/arquivo_escolhido.deb .
dpkg -e arquivo_escolhido.deb .
dpkg -X arquivo_escolhido.deb
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:
Package: cutecom
Version: 0.30.3-1
Architecture: amd64
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Roman I Khimov <roman@khimov.ru>
Installed-Size: 346
Depends: libc6 (>= 2.14), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.6.0~beta), libqt5gui5 (>= 5.0.2) | libqt5gui5-gles (>= 5.0.2), libqt5serialport5 (>= 5.6.0), libqt5widgets5 (>= 5.2.0), libstdc++6 (>= 4.1.1)
Suggests: lrzsz
Section: comm
Priority: optional
Homepage: http://github.com/neundorf/CuteCom
Description: Graphical serial terminal, like minicom
Cutecom is a graphical serial terminal, like minicom.
It is aimed mainly at hardware developers or other people who need a
terminal to talk to their devices. It features lineoriented interface
instead of character-oriented, xmodem, ymodem, zmodem support
(requires the lrzsz package) and hexadecimal input and output among
other things.
It is written using the Qt library originally by Trolltech (www.trolltech.com).
Ótimo, já consegui relembrar tudo! Precisamos de um nome de pacote, versão de software, arquitetura pode ser all, Installed-Size é 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:
Agora basta descer um nível de diretório e gerar o pacote para instalação:
dpkg-deb -b arquivo-png/ arquivo-png-0.1.deb
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:
Package: arquivo-png
Version: 0.1
Architecture: all
Maintainer: eu mesmo <eu@mesmo.com.br>
Depends:
Suggests: gwenview
Priority: optional
Homepage: https://www.manualdomaker.com
Description: Uma imagem .png
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:
sudo dpkg -i arquivo-png-0.1.deb
Para obter informações do pacote instalado:
dpkg -l arquivo-png
Que retornará algo como:
Para remover:
sudo dpkg -r arquivo-png
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!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.