Product SiteDocumentation Site

Capítulo 5. Sistema de Empacotamento: Ferramentas e Princípios Fundamentais

5.1. Estrutura de um Pacote Binário
5.2. Metainformação do Pacote
5.2.1. Descrição: O arquivo control
5.2.2. Scripts de Configuração
5.2.3. Checksums, Lista de arquivos de configuração, e outros.
5.3. Estrutura de um Pacote Fonte
5.3.1. Formato
5.3.2. Uso no Debian
5.4. Manipulando Pacotes com o dpkg
5.4.1. Instalando pacotes
5.4.2. Remoção de pacote
5.4.3. Consultando o banco de dados do dpkg e inspecionando os arquivos .deb
5.4.4. Arquivo de log do dpkg
5.4.5. Suporte Multi-Arqu
5.5. Coexistência com outros sistemas de pacotes
Como um administrador de sistemas Debian, você vai rotineiramente manipular pacotes .deb, já que eles contêm unidades funcionais consistentes (aplicações, documentação, etc.), cujas instalação e manutenção eles facilitam. Logo, é uma boa ideia saber exatamente o que são e como usá-los.
Este capítulo descreve a estrutura e conteúdo dos pacotes "binários" e "fontes". Os primeiros são arquivos diretamente usáveis pelo dpkg, enquanto os segundos contém o código fonte, assim como as instruções para construir os pacotes binários.

5.1. Estrutura de um Pacote Binário

O formato do pacote Debian é projetado para que seu conteúdo possa ser extraído em qualquer sistema Unix que contenha os clássicos comandos ar, tar e xz ou às vezes gzip ou bzip2. Esta propriedade aparentemente trivial é importante para a portabilidade e recuperação de desastres.
Imagine, por exemplo, que você apagou acidentalmente o programa dpkg, e que portanto você não pode mais instalar pacotes Debian. O dpkg sendo um pacote Debian em si, ao que parece seu sistema seria feito por... Felizmente, você conhece o formato de um pacote e pode então baixar o arquivo .deb do pacote dpkg e instalar ele manualmente (veja a barra lateral sidebar FERRAMENTAS dpkg, APT e ar) . Se por algum infortúnio um ou mais dos programas ar, tar ou gzip/xz/bzip2 tenham sumido, você só precisará copiar o programa faltoso de outro sistema (já que qualquer um destes opera de modo totalmente autônomo, sem dependências, uma simples cópia será suficiente). Se o seu sistema sofreu um desfortúnio ainda mais ultrajante, e mesmo esses não funcionam (talvez o sistema de bibliotecas mais profundo esteja faltando?), você deveria tentar a versão estática do busybox (fornecido pelo pacote busybox-static), a qual é ainda mais autossuficiente, e provê sub comandos tais como busybox ar, busybox tar e busybox xz.
Em caso de um infortúnuo, é melhor você ter um backup do seu sistema também (see Seção 9.10, “Backup”).
Dê uma olhada no conteúdo de um arquivo .deb:
$ ar t dpkg_1.20.9_amd64.deb
debian-binary
control.tar.gz
data.tar.xz
$ ar x dpkg_1.20.9_amd64.deb
$ ls
control.tar.gz  data.tar.xz  debian-binary  dpkg_1.20.9_amd64.deb
$ tar tJf data.tar.xz | head -n 16
./
./etc/
./etc/alternatives/
./etc/alternatives/README
./etc/cron.daily/
./etc/cron.daily/dpkg
./etc/dpkg/
./etc/dpkg/dpkg.cfg
./etc/dpkg/dpkg.cfg.d/
./etc/logrotate.d/
./etc/logrotate.d/alternatives
./etc/logrotate.d/dpkg
./sbin/
./sbin/start-stop-daemon
./usr/
./usr/bin/
$ tar tJf control.tar.xz
./
./conffiles
./control
./md5sums
./postrm
$ cat debian-binary
2.0
Como você pode ver, o arquivo ar de um pacote Debian é composto de três arquivos:
debian-binary
Este é um arquivo texto que simplesmente indica a versão de formato de pacote do arquivo .deb. No Debian Bullseye ainda é a versão 2.0.
control.tar.xz
Este arquivamento contém todas as meta-informações disponíveis, como o nome e a versão do pacote. Algumas destas meta-informações servem para que as ferramentas de gestão de pacotes determinem se é possível instalar e desinstalar o pacote, por exemplo, de acordo com a lista de pacotes já instalados na máquina.
data.tar.xz, data.tar.bz2, data.tar.gz
Este arquivamento contém todos os arquivos para serem extraídos do pacote; é onde os arquivos executáveis, documentação, etc, estão todos estocados. Pacotes podem usar outros formatos de compressão, e neste caso o arquivo terá um nome diferente para xz, bzip2 or gzip.