Com a administrador de sistema Debian, gestionareu rutinàriament els paquets .deb
, ja que contenen unitats funcionals consistents (aplicacions, documentació, etc.), i de les quals en faciliten la instal·lació i manteniment. Per tant, és bona idea saber què són i com utilitzar-los.
Aquest capítol descriu l'estructura i el contingut dels paquets “binaris” i “font”. Els primers són arxius directament utilitzables per dpkg
, mentre que aquests últims contenen el codi font, així com les instruccions per construir paquets binaris.
5.1. Estructura d'un paquet binari
El format del paquet Debian està dissenyat de manera que el seu contingut es pugui extreure en qualsevol sistema Unix que tingui les ordres clàssiques ar
, tar
, i xz
, o de vegades gzip
o bzip2
. Aquesta propietat aparentment trivial és important per a la portabilitat i la recuperació en cas de desastre.
Imagineu, per exemple, que heu esborrat erròniament el programa
dpkg
, i que per tant ja no podeu instal·lar paquets de Debian. Essent
dpkg
un paquet de Debian en si, semblaria que el vostre sistema estaria acabat per... Per sort, ja coneixeu el format d'un paquet i per tant podeu
descarregar el fitxer
.deb
del paquet
dpkg i instal·lar-lo manualment (vegeu el requadre
EINES dpkg
, APT
i ar
). Si per alguna desgràcia un o més dels programes
ar
,
tar
o
gzip
/
xz
/
bzip2
han desaparegut, només cal copiar d'un altre sistema el programa que us falti (ja que cadascun d'ells funciona de manera completament autònoma, sense dependències, una còpia simple serà suficient). Si el vostre sistema ha patit un infortuni encara més escandalós, i fins i tot això no funciona (potser falten biblioteques de sistema de més baix nivell?), hauríeu de provar la versió estàtica de
busybox
(contingut al paquet
busybox-static), que és encara més autònom, i ofereix subordres com ara
busybox ar
,
busybox tar
i
busybox xz
.
Doneu un cop d'ull al contingut d'un fitxer .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
Com podeu veure, l'arxiu ar
d'un paquet Debian està format per tres fitxers:
debian-binary
Aquest és un fitxer de text que simplement indica la versió del format .deb
de paquet de fitxers. A Debian Bullseye encara és a la versió 2.0.
control.tar.xz
Aquest arxiu conté tota la meta-informació disponible, com el nom i la versió del paquet, així com alguns «scripts» per executar abans, durant o després de la (des)instal·lació d'aquest. Alguna de la meta-informació permet a les eines de gestió de paquets determinar si és possible instal·lar o desinstal·lar-lo, per exemple, d'acord amb la llista de paquets que ja hi ha a la màquina, i si els arxius continguts s'han modificat localment.
data.tar.xz
, data.tar.bz2
, data.tar.gz
Aquest arxiu conté tots els fitxers que s'han d'extreure del paquet; aquí és on s'emmagatzemen els arxius executables, les biblioteques, la documentació, etc. Els paquets poden utilitzar diferents formats de compressió, en aquest cas el fitxer s'anomenarà de manera diferent per a xz
, bzip2
o gzip
.