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. Checksums, List of Configuration Files, et al.
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.
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.
En cas de desgràcia també és millor que tingueu una còpia de seguretat del vostre sistema (vegeu Secció 9.10, «Còpia de seguretat»).
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.