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. dpkg
sendo um pacote Debian ele mesmo, "it would seem your system would be done for..." 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 “TOOLS (FERRAMENTAS)”). Se por algum infortúnio um ou mais dos programas ar
, tar
ou gzip
/xz
/bzip2
sumiram, 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).
Dê uma olhada no conteúdo de um arquivo .deb
:
$
ar t dpkg_1.16.10_amd64.deb
debian-binary
control.tar.gz
data.tar.gz
$
ar x dpkg_1.16.10_i386.deb
$
ls
control.tar.gz data.tar.gz debian-binary dpkg_1.16.10_i386.deb
$
tar tzf data.tar.gz | head -n 15
./
./var/
./var/lib/
./var/lib/dpkg/
./var/lib/dpkg/updates/
./var/lib/dpkg/alternatives/
./var/lib/dpkg/info/
./var/lib/dpkg/parts/
./usr/
./usr/share/
./usr/share/locale/
./usr/share/locale/sv/
./usr/share/locale/sv/LC_MESSAGES/
./usr/share/locale/sv/LC_MESSAGES/dpkg.mo
./usr/share/locale/it/
$
tar tzf control.tar.gz
./
./conffiles
./preinst
./md5sums
./control
./postrm
./prerm
./postinst
$
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 2013: 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, data.tar.lzma
para LZMA).