Debmirror: creiamo un mirror Debian
Versioni Compatibili Debian 8 "jessie" Debian 9 "stretch" Debian 10 "buster" |
Introduzione
Molto spesso ci si trova nella necessità di avere un mirror completo di una distribuzione Debian per uno o più computer che non sono connessi a Internet, o lo sono tramite una connessione troppo lenta.
Debmirror ci viene in aiuto, dando la possibilità di creare un mirror locale.
Installazione
Per installare debmirror
con privilegi di amministrazione è sufficiente:
# apt install debmirror
Un consiglio, nel caso in cui venga creato un mirror per effettuare una installazione o un aggiornamento per un computer non connesso in rete: usate un disco fisso esterno.
Configurazione
Il programma non richiede configurazione, in quanto tutti gli eventuali parametri devono essere passati tramite riga di comando.
Opzione e Parametri
La 'sintassi' del comando è la seguente:
$ debmirror [OPZIONI] mirrordir
con i seguenti parametri:
mirrordir
- questo parametro obbligatorio indica dove deve essere creato il mirror. Attenzione alla directory indicata in quanto, come opzione di default, vengono rimosse quelle directory e file che non appaiono nel repository di cui si effettua il mirroring;
--debug
- abilita il Debug;
--progress -p
- visualizza una barra di avanzamento per monitorare lo stato del mirroring;
--verbose -v
- visualizza una barra di avanzamento tra i download dei file;
--source
- include i pacchetti dei sorgenti nel mirror [Default];
--nosource
- non include i sorgenti dei programmi nel mirror;
--checksum
- utilizza i checksum per verificare che i file nel mirror locale sono corretti ed aggiornati; è disabilitato di default in quanto lento e 'paranoico';
--passive
- esegue il download in modalità 'passiva' quando usa il protocollo FTP;
--host=remotehost -h
- indica quale host utilizzare, si invita a controllare il mirror più vicino a questo indirizzo: http://www.debian.org/mirror/list , consentendo così una miglior ripartizione del traffico sui mirror presenti (default: ftp.debian.org);
--user=remoteusername -u
- specifica l'utente remoto per accedere all'host remoto (normalmente va benissimo il valore di default) [Default: anonymous];
--method=ftp|http|https|rsync
- specifica quale metodo utilizzare per effettuare il download dei file. Il default è ancora ftp, ma ormai è disabilitato, quindi si consiglia di impostarne un altro;
--proxy=http://user:pass@url:port/
- specifica i parametri per la connessione tramite proxy;
--timeout=seconds -t
- Specifica l'intervallo prima che il download di un file vada in timeout [Default: 300 secondi];
--root=directory -r directory
- specifica la root directory dell'host remoto. Normalmente è "/debian". In questa directory è contenuta la sottodirectory "dists" [Default: /debian];
--dist=foo[,bar,..] -d foo
- specifica la distribuzione (Woody, Sarge, Sid). Possono essere indicate tutte e tre (-dist=woody,sarge,sid oppure -d woody -d sarge -d sid); le suite (stable, unstable, testing) potrebbero non funzionare, quindi si invita ad utilizzare il codename della release);
--section=foo[,bar,..] -s foo
- specifica la sezione (o le sezioni) di Debian di cui effettuare il mirroring [Default: main,contrib,non-free,main/debian-installer];
--arch=foo[,bar,..] -a foo
- specifica la architettura (o le architetture) di cui effettuare il mirroring [Default: i386];
--postcleanup
- esegue la pulizia del mirror locale solo quando il mirroring è terminato senza errori [Default];
--precleanup
- esegue una pulizia della directory in cui verrà creato il mirror, prima di cominciare l'operazione; Può essere utile se non si ha molto spazio libero, ma risulterà in uno stato inconsistente del mirror locale finché l'operazione non sarà completata;
--nocleanup
- non esegue la pulizia del mirror al termine della creazione dello stesso;
--ignore=regex
- non elimina i file che rispondono l'espressione regolare [regexp] (può essere usato più volte);
--exclude=regex
- non esegue il download dei file che soddisfano l'espressione regolare (può essere usato più volte);
--exclude-deb-section=regex
- non esegue il download dei file contenuti nella sezione che soddisfa l'espressione regolare [regexp] (può essere usato più volte);
--limit-priority=regex
- limita il download ai file che soddisfano l'espressione regolare per quanto riguarda la priorità del pacchetto (reguired, extra, optional) (può essere usato più volte);
--include-field=fieldname=regex
- non escludere i pacchetti il cui campo soddisfa l'espressione regolare [regexp] (può essere usato più volte);
--skippackages
- non scarica i file
Packages
eSources
(utile se questi file sono già aggiornati);
--getcontents
- scarica il file
Contents.arch.gz
;
--ignore-missing-release
- non lancia un errore se il file Release non è presente nel mirror;
--ignore-release-gpg
- non lancia un errore se non è presente il file
Release.gpg
(consigliato);
--dry-run
- esegue una simulazione, senza scaricare i file e pulire il mirror;
--rsync-options=options
- Specifica le opzioni da passare a rsync [Default: -aIL --partial]. Utile è anche l'opzione
--bwlimit=x
che consente di impostare la larghezza di banda massima da usare per il download;
--ignore-small-errors
- Ignora degli errori 'piccoli' o 'poco significativi' come il non aver trovato un file al 'primo colpo' e il dover procedere ad un altro tentativo.Consigliato;
--help
- Visualizza un help.
Utilizzo
L'utilizzo è semplice: basta indicare solo quello necessario e lui provvederà a scaricare tutti i file necessari.
Verrà creata una struttura uguale a quella di un mirror Debian ed eventualmente (se già presente) verranno controllati ed aggiornati i pacchetti vecchi.
Ecco alcuni esempi di utilizzo:
- Mirror completo di Debian 10 (Buster) dal redirector (http://deb.debian.org), che dovrebbe scegliere il mirror più veloce:
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg /path/to/dir
(--ignore-small-errors --ignore-release-gpg
le includo sempre, in quanto potrebbero dare dei problemi; eventualmente si può provare a lanciare il processo senza gli 'ignore' per controllare eventuali errori nel caso il processo non vada a buon fine.)
- Mirror dei file che non appartengono alla sezione 'games', escludendo anche i sorgenti sorgenti:
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg --exclude="games" --nosource /path/to/dir
- Mirror di tutta Buster (sorgenti esclusi):
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg --nosource /path/to/dir
Come potete vedere da questi 3 esempi, l'utilizzo è molto semplice ed immediato.
Debmirror e Cron
Può essere utile, per mantenere aggiornato il mirror, lanciare debmirror ad intervalli regolari (magari ogni giorno). Così, aggiungendo una semplice riga a /etc/crontab
è possibile programmare l'esecuzione di debmirror.
Ecco un esempio, che programma l'esecuzione del mirroring alle 00.00 di ogni giorno:
0 0 * * * maxer /usr/bin/debmirror --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg --arch=none --nosource /store3/deb/
così il mirror verrà aggiornato di notte, evitando eventuali problemi di banda o di carico eccessivo del sistema!
Considerazioni sull'Utilizzo
Prima di utilizzare questo strumento per installare o aggiornare Debian su un computer sprovvisto di connessione ad internet e/o con una connessione lenta, vorrei porre in luce alcune questioni:
- L'utilizzo smodato di questo strumento genera un aumento di banda utilizzata (da parte dei mirror) considerevole (nell'ordine di Gbyte), uno spreco per un solo computer.
- Spesso si scaricano più programmi di quelli necessari (anzi, spesso quelli non utilizzati sono più del doppio di quelli utilizzati); consiglio quindi il download della prima e della seconda ISO di Sarge, o il primo DVD, in quanto su questi è presente il 90% dei pacchetti più utilizzati in ambito 'domestico'.
Non dimentichiamoci che le risorse dei mirror sono 'donate' al progetto Debian, ed un aumento esponenziale o troppo sostenuto delle risorse richieste potrebbe compromettere la disponibilità dell'hoster.
Inoltre debmirror non è designato propriamente per generare 'mirror di installazione', ma per creare mirror locali in LAN di medie dimensioni.
Dopo queste piccole considerazioni, happy Debian!
Guida scritta da: MaXeR | Debianized 40% |
Estesa da: | |
Verificata da:
| |
Verificare ed estendere la guida | Cos'è una guida Debianized |