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.
Imagine, for example, that you mistakenly deleted the
dpkg
program, and that you could thus no longer install Debian packages.
dpkg
being a Debian package itself, it would seem your system would be done for... Fortunately, you know the format of a package and can therefore
download the
.deb
file of the
dpkg package and install it manually (see sidebar
EINES dpkg
, APT
i ar
). If by some misfortune one or more of the programs
ar
,
tar
or
gzip
/
xz
/
bzip2
have disappeared, you will only need to copy the missing program from another system (since each of these operates in a completely autonomous manner, without dependencies, a simple copy will suffice). If your system suffered some even more outrageous misfortune, and even these don't work (maybe the deepest system libraries are missing?), you should try the static version of
busybox
(provided in the
busybox-static package), which is even more self-contained, and provides subcommands such as
busybox ar
,
busybox tar
and
busybox xz
.
Doneu un cop d'ull al contingut d'un fitxer .deb
:
$
ar t dpkg_1.21.22_amd64.deb
debian-binary
control.tar.gz
data.tar.xz
$
ar x dpkg_1.21.22_amd64.deb
$
ls
control.tar.gz data.tar.xz debian-binary dpkg_1.21.22_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
./lib/
./lib/systemd/
./lib/systemd/system/
./lib/systemd/system/dpkg-db-backup.service
$
tar tJf control.tar.xz
./
./conffiles
./control
./md5sums
./postinst
./postrm
./prerm
$
cat debian-binary
2.0
Com podeu veure, l'arxiu ar
d'un paquet Debian està format per tres fitxers:
debian-binary
This is a text file which simply indicates the version of the .deb
file package format version. In Debian Bookworm it is still version 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
.