Copiare, fare il mirror e riscaricare i pacchetti Debian.

Creato il 10 dicembre 2013 da Hugor @msdiaz61
Riscaricare tutti i pacchetti .deb installati.
 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.
Impostare un mirror Debian o una sorgente apt sul disco locale.
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).


Usare apt-move per spostare i pacchetti nel repository sull'hard disk locale.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.
  
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

Potrebbero interessarti anche :

Possono interessarti anche questi articoli :