Il nome di un file .deb è costituito da:
apache-ssl_1.3.26.1+1.48-0woody3_i386.deb \--------/ \-----------/ \-----/ \--/ \-/ | | | | | | | | | \-- Estensione | | | \------- Architettura | | \--------------- Revisione Debian | \----------------------------- Versione upstream \---------------------------------------- Nome pacchetto
Quando si crea un pacchetto Debian si deve creare il file DEBIAN/control, gli attributi più importanti in esso contenuti sono Package (nome del pacchetto) e Version (versione upstream e versione Debian). La versione è fondamentale per decidere quale pacchetto deve sostituire un altro durante un upgrade.
Quella che segue è una panoramica semplificata, in alternativa c'è questo approfondimento sui file di controllo Debian.
Ogni pacchetto Debian include alcuni file di controllo che gestiscono l'installazione, la configurazione e la rimozione di un pacchetto. Sono raggruppati nella sottodirectory DEBIAN. Documentazione dovrebbe trovarsi in /usr/doc/packaging-manual/
. Consultare gli script di apache-ssl che sembrano ben commentati.
Viene eseguito prima dell'installazione o dell'upgrade del pacchetto. Non deve generare errore (segnalato da un exit code diverso da zero), altrimenti l'installazione viene considerata fallita. Qusti sono gli argomenti con i quali puo' essere chiamato lo script:
Viene eseguito dopo che il contenuto del pacchetto e' stato scompattato. Qusti sono gli argomenti con i quali puo' essere chiamato lo script:
dpkg –install
o un dpkg –configure
, provvede alla configurazione del pacchetto appena scompattato. Viene quindi eseguito anche durante l'upgrade.Eseguito dopo la rimozione del pacchetto. Quando un pacchetto viene aggiornato viene eseguito il postrm della precedente versione con il parametro <i>upgrade</i>.
dpkg –remove
, il pacchetto viene disinstallato, ma i file di configurazione rimangono.dpkg –purge
, il pacchetto viene disinstallato e i file di configurazione eliminati.Eseguibile, normalmente usato per eseguire le dialogbox di configurazione se il pacchetto usa il motore debconf.
Informazioni sulle dialogbox presentate durante l'installazione dal sistema debconf. Se un pacchetto usa debconf per l'installazione invece di essere interattivo durante gli script (postinst, ecc), fa tutte le domande all'inizio e poi va avanti da solo.
Queste istruzioni riguardano la modifica di un pacchetto binario Debian. La modifica a partire dai sorgenti originali o da quelli Debian e' una procedura piu' complessa.
Non utilizzare Midnight Commander per scompattare un .deb! Prima di tutto non ripristina il timestamp dei file, ma ancora piu' grave non ricrea le directory vuote!
Creare una directory col nome del pacchetto e una sottodirectory di nome DEBIAN. Estrarre il contenuto del file .deb nella directory e i file di controllo nella sottodirectory DEBIAN:
mkdir apache-ssl mkdir apache-ssl/DEBIAN dpkg --extract apache-ssl_1.3.26.1+1.48-0woody3_i386.deb apache-ssl dpkg --control apache-ssl_1.3.26.1+1.48-0woody3_i386.deb apache-ssl/DEBIAN
Un file .deb e' in realta' un file di tipo archive, compresso con gzip. Per estrarne il contenuto si puo' usare il comando ar xvf archive.deb
e poi scompattare normalmente i due file data.tar.gz
e control.tar.gz
.
Aggiornare il numero di versione in /DEBIAN/control
in modo che il pacchetto IPBOX sia preferito all'originale Debian. Aggiungere directory e file come necessario (ad esempio i template di configurazione).
Le variazioni rispetto al pacchetto Debian dovrebbero essere documentate in /usr/share/doc/<package>/changelog.IPBOX
. Il formato del changelog e' descritto nel Debian Policy Manual, un esempio:
phpmyadmin (2.2.3-2ipbox3) woody; urgency=high * Removed all debconf stuff from control files * Added code to update /etc/apache-ssl/httpd.conf.include -- Niccolo Rigacci <niccolo@rigacci.org> Thu, 25 Sep 2003 10:24:00 +0200