Table of Contents
Make a Debian binary package
Nomi dei pacchetti .deb
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.
File di controllo di un pacchetto Debian
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.
/DEBIAN/preinst
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:
- new-preinst install
Il pacchetto era assolutamente assente (purged). - new-preinst install old-version
Esistevano alcuni vecchi file di configurazione (il pacchetto era removed ma non purged). - new-preinst upgrade old-version
Il pacchetto era gia' installato, si sta facendo l'upgrade. - old-preinst abort-upgrade new-version
/DEBIAN/postinst
Viene eseguito dopo che il contenuto del pacchetto e' stato scompattato. Qusti sono gli argomenti con i quali puo' essere chiamato lo script:
- postinst configure most-recently-configured-version
E' lo script piu' importante, eseguito in seguito a undpkg –install
o undpkg –configure
, provvede alla configurazione del pacchetto appena scompattato. Viene quindi eseguito anche durante l'upgrade. - old-postinst abort-upgrade new version
- conflictor's-postinst abort-remove in-favour package new-version
- deconfigured's-postinst abort-deconfigure in-favour failed-install-package version removing conflicting-package version
/DEBIAN/postrm
Eseguito dopo la rimozione del pacchetto. Quando un pacchetto viene aggiornato viene eseguito il postrm della precedente versione con il parametro <i>upgrade</i>.
- postrm remove
In seguito a undpkg –remove
, il pacchetto viene disinstallato, ma i file di configurazione rimangono. - postrm purge
In seguito a undpkg –purge
, il pacchetto viene disinstallato e i file di configurazione eliminati. - old-postrm upgrade new-version
/DEBIAN/config
Eseguibile, normalmente usato per eseguire le dialogbox di configurazione se il pacchetto usa il motore debconf.
/DEBIAN/templates
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.
Modificare un pacchetto .deb esistente
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.
Scompattare i file
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
.
Modificare il contenuto
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