Product SiteDocumentation Site

Capítulo 5. Sistema de Pacotes: 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
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. Coexistencia com outros sistemas de pacotes
Como um administrador de sistemas Debian, você rotineiramente manipula 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 .deb, 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 foi projetado para que seu conteúdo possa ser extraído em qualquer sistema Unix que contenha os clássicos comandos ar, tar, e gzip (e às vezes xz ou bzip2). Esta característica 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ó precisa 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 desfortunio ainda mais ultrajante, e mesmo esses não funcionam (talvez o sistema de bibliotecas mais profundo esteja faltando?), você deve tentar a versão estática do busybox (fornecido pelo pacote busybox-static) , a qual é ainda mais autosuficiente, e provê sub comandos tais como busybox ar, busybox tar e busybox gunzip.
Dê uma olhada no conteúdo de um arquivo .deb:
$ ar t dpkg_1.17.23_amd64.deb
debian-binary
control.tar.gz
data.tar.gz
$ ar x dpkg_1.17.23_amd64.deb
$ ls
control.tar.gz  data.tar.gz  debian-binary  dpkg_1.17.23_amd64.deb
$ tar tzf data.tar.gz | head -n 15
./
./var/
./var/lib/
./var/lib/dpkg/
./var/lib/dpkg/parts/
./var/lib/dpkg/info/
./var/lib/dpkg/alternatives/
./var/lib/dpkg/updates/
./etc/
./etc/logrotate.d/
./etc/logrotate.d/dpkg
./etc/dpkg/
./etc/dpkg/dpkg.cfg.d/
./etc/dpkg/dpkg.cfg
./etc/alternatives/
$ tar tzf control.tar.gz
./
./conffiles
./postinst
./md5sums
./prerm
./preinst
./control
./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 do arquivo .deb usado (em 2015: version 2.0).
  • control.tar.gz. 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 determinarem se é possível instalar e desinstalar o pacote, por exemplo, de acordo com a lista de pacotes já instalados na máquina.
  • 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. Alguns pacotes podem usar outros formatos de compressão, e neste caso o arquivo terá um nome diferente (data.tar.bz2 para bzip2, data.tar.xz para XZ).