Product SiteDocumentation Site

Capítol 5. Sistema de paquets: eines i principis fonamentals

5.1. Estructura d'un paquet binari
5.2. Meta-informació del paquet
5.2.1. Descripció: l'arxiu control
5.2.2. Scripts de configuració
5.2.3. Sumes de verificació («checksums»), llista de fitxers de configuració, i altres.
5.3. Estructura d'un paquet font
5.3.1. Format
5.3.2. Ús dins de Debian
5.4. Manipulant els paquets amb dpkg
5.4.1. Instal·lant paquets
5.4.2. Eliminació de paquets
5.4.3. Consultant la base de dades de dpkg i inspeccionant arxius .deb
5.4.4. Arxiu de registre de dpkg
5.4.5. Suport multiarquitectura
5.5. Coexistència amb altres sistemes de paquets
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.
In case of a misfortune, you better also have a backup of your system (see Secció 9.10, «Còpia de seguretat»).
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.