Si potrebbe volerlo fare per necessità di mirror o di backup, o per creare un set di CD che soddisfi le dipendenze. Il trucco può essere realizzato con:
# COLUMNS=200 dpkg -l | grep '^ii' | awk '{ print $2 }' > /tmp/pkglist # cat /tmp/pkglist | xargs apt-get --download-only --reinstall -y install
Terminato il download, si dovrebbero vedere tutti i file .deb in /var/cache/apt/archives/. Si veda anche il metodo apt-move sync successivo, potrebbe essere ciò di sui si ha veramente bisogno.
Questa sottosezione potrebbe essere di interesse se si vogliono copiare i CD Debian sul proprio disco (così da non dovere cambiare i CD-ROM nel lettore ogni volta) o esportare il mirror Debian sulle macchine della propria LAN locale.
Il modo più semplice per copiare i CD Debian sul proprio hard disk dovrebbe essere l'utilizzo dello strumento dd e la creazione diretta dell'immagine del CD:
# dd if=/dev/cdrom of=/mnt/deb-cd1.img bs=512k
Suggerimento | |
---|---|
Se si installa il pacchetto cdrecord sarà disponibile il comando readcd: # readcd dev=0,0,0 f=deb-cd1.img |
Si monterà poi l'immagine così (naturalmente la si aggiunga a /etc/fstab se si vuole averla disponibile sempre):
# mkdir /mnt/deb-cd1 # mount -o loop,ro /mnt/deb-cd1.img /mnt/deb-cd1
Una riga in sources.list di esempio potrebbe essere simile a questa:
deb file://mnt/deb-cd1 woody main contrib non-free non-US/main non-US/contrib non-US/non-free
Notare: | |
---|---|
Sebbene questa procedura dovrebbe funzionare ed è perfettamente corretta se si vogliono davvero le immagini CD (per esempio se si stiano salvando i CD Debian), probabilmente la si troverà inadatta per altre necessità (perché il numero massimo di device loop disponibili in maniera predefinita nel kernel è solo 7 e si avranno necessariamente sorgenti multiple invece di una omnicomprensiva). |
Se si ha sufficiente spazio disco, si troverà apt-move molto utile. Si può utilizzarlo per copiare i CD-ROM sul disco, ordinare i file scaricati da /var/cache/apt/archives o rimanere sincronizzati con il proprio mirror Debian locale.
Primo, si installi apt-move:
apt-get install apt-move
Modificare /etc/apt-move.conf, mettere "localhost" (o il nome Internet del mirror naturalmente) nel campo APTSITES e cambiare l'opzione DIST (in "woody", se si ha Debian 3.0). Si potrebbe anche modificare PKGTYPE in "both" (entrambi) se si desiderano anche i pacchetti sorgente.
Modificare /etc/apt/sources.list e disattivare tutte le righe riferite ai CD-ROM.
Esportare /cdrom con Apache (se si utilizza http://localhost invece del mirror Internet come sorgente dei pacchetti):
# apt-get install apache # echo "Alias /cdrom/ /cdrom/" >> /etc/apache/httpd.conf # /etc/init.d/apache restart # echo "deb http://localhost/cdrom/ woody contrib main non-US/contrib non-US/main non-US/non-free non-free" >> /etc/apt/sources.list # apt-get update
Inizializzare apt-move:
# apt-move get
Adesso per ciascun CD che si vuole spostare sul proprio hard disk, si digiti:
# mount /cdrom # apt-get update # apt-move mirror # umount /cdrom
Se non si utilizzano CD ma direttamente il mirror Internet:
# Per spostare i pacchetti da /var/cache/apt/archives/ solamente # apt-move move # Per creare un mirror completo # apt-move mirror # Per copiare solo i pacchetti che sono installati sul sistema # apt-move sync
Quando si è terminato, si creino i nuovi Packages.gz e Sources.gz:
# apt-move packages # cd /mirrors/debian # gunzip `find . -name Packages.gz` # apt-move packages
Si noti che la riga gunzip ... è importante, perché crea i semplici file Packages; saranno necessari in seguito se si utilizzano strumenti tipo debootstrap. Sarà anche necessario copiare alcuni file Release esistenti nella directory dists/woody/.
Sostituire il repository http://localhost/cdrom/ (non è più necessario) con il nuovo mirror creato e si installi xplanet per testarlo:
# perl -n -i -e 'print unless m#/cdrom/#' /etc/apt/sources.list # apt-get install apache # echo "Alias /mirrors/debian/ /debian/" >> /etc/apache/httpd.conf # /etc/init.d/apache reload # echo "deb http://localhost/debian/ woody contrib main non-US/contrib non-US/main non-US/non-free non-free" \ >> /etc/apt/sources.list # apt-get update # apt-get install xplanet xplanet-images
Prima di andare avanti, non ci si dimentichi di rimuovere la voce /cdrom/ da /etc/apache/httpd.conf.