3. Struttura dei pacchetti

Esaminiamo un esempio di pacchetto un po' più da vicino. Per esempio il file 'parted_1.4.24-4_i386.deb' contiene questi tre file:


$ ar tv parted_1.4.24-4_i386.deb
rw-r--r-- 0/0      4 Mar 28 13:46 2002 debian-binary
rw-r--r-- 0/0   1386 Mar 28 13:46 2002 control.tar.gz
rw-r--r-- 0/0  39772 Mar 28 13:46 2002 data.tar.gz

Ora possiamo iniziare ad estrarre tutti i file incluso il contenuto dei file tar.

3.1. debian-binary

Il contenuto di questo file è "2.0\n". Questo stabilisce la versione del formato del file .deb. Per il formato 2.0 tutte le altre righe vengono ignorate.

3.2. data.tar.gz

Il file 'data.tar.gz' contiene tutti i file che saranno installati con i loro percorsi di destinazione:


drwxr-xr-x root/root         0 2002-03-28 13:44:57 ./
drwxr-xr-x root/root         0 2002-03-28 13:44:49 ./sbin/
-rwxr-xr-x root/root     31656 2002-03-28 13:44:49 ./sbin/parted
drwxr-xr-x root/root         0 2002-03-28 13:44:38 ./usr/
drwxr-xr-x root/root         0 2002-03-28 13:44:41 ./usr/share/
drwxr-xr-x root/root         0 2002-03-28 13:44:38 ./usr/share/man/
drwxr-xr-x root/root         0 2002-03-28 13:44:52 ./usr/share/man/man8/
-rw-r--r-- root/root      1608 2002-03-28 13:44:37 ./usr/share/man/man8/parted.8.gz
drwxr-xr-x root/root         0 2002-03-28 13:44:41 ./usr/share/doc/
drwxr-xr-x root/root         0 2002-03-28 13:44:52 ./usr/share/doc/parted/
-rw-r--r-- root/root      1880 2002-03-07 14:20:08 ./usr/share/doc/parted/README.Debian
-rw-r--r-- root/root      1347 2002-02-27 01:40:50 ./usr/share/doc/parted/copyright
-rw-r--r-- root/root      6444 2002-03-28 13:37:33 ./usr/share/doc/parted/changelog.Debian.gz
-rw-r--r-- root/root     15523 2002-03-28 02:36:43 ./usr/share/doc/parted/changelog.gz

Deve essere l'ultimo file nell'archivio deb.

3.3. control.tar.gz

Nel nostro esempio questo file ha il seguente contenuto:


-rw-r--r--    1 root     root         1336 Mar 28  2002 control
-rw-r--r--    1 root     root          388 Mar 28  2002 md5sums
-rwxr-xr-x    1 root     root          253 Mar 28  2002 postinst
-rwxr-xr-x    1 root     root          194 Mar 28  2002 prerm

'md5sums' contiene, per ogni file in data.tar.gz, l'md5sum. Nel nostro esempio il contenuto appare come questo:


1d15dcfb6bb23751f76a2b7b844d3c57  sbin/parted
4eb9cc2e192f1b997cf13ff0b921af74  usr/share/man/man8/parted.8.gz
2f356768104a09092e26a6abb012c95e  usr/share/doc/parted/README.Debian
a6259bd193f8f150c171c88df2158e3e  usr/share/doc/parted/copyright
7f8078127a689d647586420184fc3953  usr/share/doc/parted/changelog.Debian.gz
98f217a3bf8a7407d66fd6ac8c5589b7  usr/share/doc/parted/changelog.gz

Non bisogna preoccuparsi, il file 'md5sum' così come i file 'postinst' e 'prerm' non sono necessari per il proprio primo pacchetto. Ma è meglio ricordarsi della loro esistenza, ogni pacchetto che appartiene alla Debian ufficiale ha questi file per delle buone ragioni.

I file 'prerm' e 'postinst' sembra che si prendano cura della rimozione dei file della vecchia documentazione e aggiungano un link da doc a share/doc.

$ cat postinst
#!/bin/sh
set -e
# Aggiunto automaticamente da dh_installdocs
if [ "$1" = "configure" ]; then
  if [ -d /usr/doc -a ! -e /usr/doc/parted -a -d /usr/share/doc/parted ]; then
    ln -sf ../share/doc/parted /usr/doc/parted
  fi
fi
# Fine della sezione aggiunta automaticamente

$ cat prerm
#!/bin/sh
set -e
# Aggiunto automaticamente da dh_installdocs
if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/parted ]; then
  rm -f /usr/doc/parted
fi
# Fine della sezione aggiunta automaticamente

Ed infine il file più interessante:


$ cat control
Package: parted
Version: 1.4.24-4
Section: admin
Priority: optional
Architecture: i386
Depends: e2fsprogs (>= 1.27-2), libc6 (>= 2.2.4-4), libncurses5 (>= \
5.2.20020112a-1), libparted1.4 (>= 1.4.13+14pre1), libreadline4 (>= \
4.2a-4), libuuid1
Suggests: parted-doc
Conflicts: fsresize
Replaces: fsresize
Installed-Size: 76
Maintainer: Timshel Knoll <timshel@debian.org>
Description: Il programma per il ridimensionamento delle partizioni del disco GNU Parted
 Parted è un programma che permette di creare, eliminare, ridimensionare,
 muovere e copiare partizioni del disco rigido. È utile per creare dello
 spazio per nuovi sistemi operativi, riorganizzare l'uso del disco, e per
 copiare i dati in nuovi dischi rigidi. 
 .
 Questo pacchetto contiene il binario di Parted e la pagina di manuale.
 .
 Parted attualmente supporta etichette/tavole delle partizioni di DOS, Mac,
 Sun, BSD, GPT e PC98, così come un tipo di 'loop' (raw disk) che ne
 permette l'utilizzo su RAID/LVM. I filesystem supportati sono: ext2, ext3,
 FAT (FAT16 e FAT32) e linux-swap. Parted può anche identificare filesystem
 HFS (Mac OS), JFS, NTFS, ReiserFS, UFS e XFS ma non può ancora
 creare/rimuovere/ridimensionare/verificare questi filesystem.
 .

 La natura di questo software è tale che ogni baco potrebbe causare una
 massiccia perdita di dati. Nonostante non ci siano bachi conosciuti al
 momento, potrebbero esisterne, quindi si è pregati di fare un back up di
 tutti i file importanti prima di eseguire questo programma, sapendo di
 agire a proprio rischio.

Ulteriori informazioni riguardo il file control possono essere ottenute con 'man 5 deb-control'.