Make Debian Packages CD-ROM

Gianfranco Di Prinzio <gianfrdp@inwind.it>

Copyright (C) 2001-2002

Licenza: GPL >= 2

Il pacchetto mkdpkg serve per rendere un albero di directory usabile con apt.
Per usare gli script è necessario installare apt-utils, se la propria distribuzione non ha tale pacchetto allora si usa dpkg-dev.


Revisioni


Installazione

Scaricare il pacchetto http://www.telug.it/gianfranco/mkdpkg/mkdpkg-1.1.2.tar.gz.
Scopmattarlo:

			# tar zxvf mkdpkg-1.1.2.tar.gz
		
Modificare il file di confgurazione mkdpkg.conf.
Installare:
			# make install
		
Se non si hanno i permessi di root si può modificare la variabile PREFIX in tutti gli script e nel Makefile, affinché punti ad una directory di cui si abbiano i permessi di scrittura (per esempio la propria HOME), oppure settare PREFIX=/usr/local.

Si presuppone che esista una stuttura del genere (la root può essere modificata in mkdpkg.conf):

			${ROOT}/indices/
			${ROOT}/dists/
			${ROOT}/dists/${DIST}/
			${ROOT}/dists/${DIST}/main/
			${ROOT}/dists/${DIST}/main/binary-${ARCH}/
			${ROOT}/dists/${DIST}/main/source/
			${ROOT}/pool/main
			...
		
dove ${DIST} può essere la distribuzione che si usa: potato, woody, sid, ...
di default ROOT=/opt/archive, DIST=woody, ARCH=i386.
Per semplificare la creazione di tale struttura è presente lo script mkdpkg-dir:
			# mkdpkg-dir main
			# mkdpkg-dir non-free
			# mkdpkg-dir pippo
			...
		

Nelle directory pool vanno i pacchetti binari (.deb) ed i sorgenti (.dsc, .diff.gz, .orig.tar.gz), secondo uno schema del genere: pool/main/a/apache, pool/main/a/agetty, pool/main/b/bzip2, ecc. Nelle dir binary-${ARCH} verranno create le liste dei pacchetti (Packages) ed in source quelle dei sorgenti (Sources).

Tale struttura ricalca quella dei CD Debian.


Uso

Innanzitutto si devono creare i file override in ${ROOT}/indices/ con l'elenco dei pacchetti binari:

			# mkdpkg_override [section]
		
dove section è un parametro opzionale che indica la sezione da prendere in considerazione (main, non-free, pippo, ...) (default tutti).

Poi si creano i file Packages nelle varie directory binary-${ARCH}:

			# mkdpkg [section]
		

Eventualmente, se si hanno pacchetti sorgenti, si possono creare i file Sources nelle directory source:

			# mkdpkg_src [section]
		

La directory ${ROOT} può essere, così, usata con apt per aggiornare la propria distribuzione, sia direttamnete che masterizzandola su un CD, che usando una connessione di rete tramite ftp.


Aggiornamento da filesystem

Nel primo caso basta modificare il file /etc/apt/sources.list aggiungendo le righe:

			deb file:/opt/archive woody main non-US non-free contrib pippo
			deb-src file:/opt/archive woody main non-US non-free contrib pippo
		
dove ROOT=/opt/archive, DIST=woody, main,..., pippo sono le sezioni che contengono i pacchetti.

Per aggiornare il database di apt basta fare:

			# apt-get update
		


Aggiornamento da remoto

Dopo aver dato i permessi di lettura tramite ftp anonimo, basta copiare la dir ${ROOT} in /home/ftp/pub (oppure far puntare direttamente ROOT=/home/ftp/pub nel file mkdpkg.cfg) e modificare il file /etc/apt/sources.list in ogni macchina client collegata in rete, aggiungendo le righe:

			deb ftp://indirizzo.server/pub woody main non-US non-free contrib pippo
			deb-src ftp://indirizzo.server/pub woody main non-US non-free contrib pippo
		

Per aggiornare il database di apt basta fare:

			# apt-get update
		


Aggiornamento da CD-ROM

Se si desidera creare un CD-ROM che possa essere usato con apt, allora si deve creare il file ${ROOT}/.disk/info contenete il titolo del CD.

Poi si può masterizzare la directory ${ROOT}

			# mkisofs -v -J -r -V"etichetta" -o immagine.iso /opt/archive/
			# cdrecord -v speed=8 dev=0,3,0 -pad -eject immagine.iso
		

Infine si può aggiungere il CD con:

			# apt-cdrom add
			# apt-get update
		


Riferimenti

Per maggiori dettagli consultare: