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
. This is a text file which simply indicates the version of the .deb
file used (in 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).