Debmirror: creiamo un mirror Debian: differenze tra le versioni

m
verificata
m (rimossi link a guide obsolete)
m (verificata)
Riga 1: Riga 1:
{{Versioni compatibili|Squeeze|Wheezy|Jessie}}
{{Versioni compatibili|Jessie|Stretch|Buster}}
== Introduzione ==
== Introduzione ==
Molto spesso ci si trova nella necessità di avere un [[Creare un Repository Debian|mirror completo]] di una distribuzione Debian per uno o più computer che non sono connessi ad internet (o lo sono tramite una connessione troppo lenta).
Molto spesso ci si trova nella necessità di avere un [[Creare un Repository Debian|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.<br/>
Debmirror ci viene in aiuto, dando la possibilità di creare un mirror locale.
'''Debmirror''' ci viene in aiuto, dando la possibilità di creare un [[mirror]] locale.


==Installazione==
==Installazione==
 
Per installare <code>debmirror</code> con [[privilegi di amministrazione]] è sufficiente:
Per installare debmirror è sufficiente un:
<pre>
<pre>
# apt-get install debmirror
# apt install debmirror
</pre>
</pre>
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 (nel caso in cui il mirror debba essere trasportato su un altro computer) o di un DVD-RW (nel caso in cui il mirror sia parziale).
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==
==Configurazione==
Il programma non richiede configurazione, in quanto tutti gli eventuali parametri devono essere passati tramite riga di comando.
Il programma non richiede configurazione, in quanto tutti gli eventuali parametri devono essere passati tramite riga di comando.


==Opzione e Parametri==
==Opzione e Parametri==
La 'sintassi' del comando è la seguente:
La 'sintassi' del comando è la seguente:
<pre>
<pre>
Riga 38: Riga 33:
; <code>--nosource</code>: non include i sorgenti dei programmi nel mirror;
; <code>--nosource</code>: non include i sorgenti dei programmi nel mirror;


; <code>--md5sums -m</code>: utilizza l'md5 per verificare quali file nel mirror locale sono corretti ed aggiornati, è disabilitato di default in quanto lento e 'paranoico';
; <code>--checksum</code>: utilizza i checksum per verificare che i file nel mirror locale sono corretti ed aggiornati; è disabilitato di default in quanto lento e 'paranoico';


; <code>--passive</code>: esegue il download in modalità 'passiva';
; <code>--passive</code>: esegue il download in modalità 'passiva' quando usa il protocollo [[FTP]];


; <code>--host=remotehost -h</code>: 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);
; <code>--host=remotehost -h</code>: 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);
Riga 46: Riga 41:
; <code>--user=remoteusername -u</code>: specifica l'utente remoto per accedere all'host remoto (normalmente va benissimo il valore di default) [Default: anonymous];
; <code>--user=remoteusername -u</code>: specifica l'utente remoto per accedere all'host remoto (normalmente va benissimo il valore di default) [Default: anonymous];


; <code>--method=ftp|hftp|http|rsync -e</code>: specifica quale metodo utilizzare per effettuare il download dei file. Sono supportati: ftp, http, hftp (ftp over http) rsync (per questo protocollo bisogna preporre <code>:</code> alla root directory dell'host remoto, ad esempio ":debian");
; <code>--method=ftp|http|https|rsync</code>: specifica quale metodo utilizzare per effettuare il download dei file. Il default è ancora ftp, ma ormai è disabilitato, quindi si consiglia di impostarne un altro;


; <code>--proxy=http://user:pass@url:port/</code>: specifica i parametri per la connessione tramite proxy;
; <code>--proxy=http://user:pass@url:port/</code>: specifica i parametri per la connessione tramite proxy;
Riga 52: Riga 47:
; <code>--timeout=seconds -t</code>: Specifica l'intervallo prima che il download di un file vada in timeout [Default: 300 secondi];
; <code>--timeout=seconds -t</code>: Specifica l'intervallo prima che il download di un file vada in timeout [Default: 300 secondi];


; <code>--root=directory -r directory</code>: specifica la root directory dell'host remoto. Normalmente è "/debian". In questa directory è contenuta la directory "dists" [default: /debian];
; <code>--root=directory -r directory</code>: specifica la root directory dell'host remoto. Normalmente è "/debian". In questa directory è contenuta la sottodirectory "dists" [Default: /debian];


; <code>--dist=foo[,bar,..] -d foo</code>: specifica la distribuzione (Woody, Sarge, Sid). Possono essere indicate tutte e tre (-dist=woody,sarge,sid oppure -d woody -d sarge -d sid); i link (stable, unstable, testing) potrebbero non funzionare, quindi si invita ad utilizzare il nome della release) [Default: sid];
; <code>--dist=foo[,bar,..] -d foo</code>: 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);


; <code>--section=foo[,bar,..] -s foo</code>: specifica la sezione (o le sezioni) di Debian di cui effettuare il mirroring [Default: main,contrib,non-free,main/debian-installer];
; <code>--section=foo[,bar,..] -s foo</code>: specifica la sezione (o le sezioni) di Debian di cui effettuare il mirroring [Default: main,contrib,non-free,main/debian-installer];


; <code>--arch=foo[,bar,..] -a foo</code>: specifica la architettura (o le architetture) di cui effettuare il mirroring (Default: i386);
; <code>--arch=foo[,bar,..] -a foo</code>: specifica la architettura (o le architetture) di cui effettuare il mirroring [Default: i386];


; <code>--cleanup</code>: esegue una pulizia della directory in cui verrà creato il mirror [Default: on];
; <code>--postcleanup</code>: esegue la pulizia del mirror locale solo quando il mirroring è terminato senza errori [Default];
 
; <code>--precleanup</code>: 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;


; <code>--nocleanup</code>: non esegue la pulizia del mirror al termine della creazione dello stesso;
; <code>--nocleanup</code>: non esegue la pulizia del mirror al termine della creazione dello stesso;
; <code>--postcleanup</code>: esegue la pulizia del mirror locale solo quando il mirroring è terminato senza errori;


; <code>--ignore=regex</code>: non elimina i file che rispondono l'espressione regolare [regexp] (può essere usato più volte);
; <code>--ignore=regex</code>: non elimina i file che rispondono l'espressione regolare [regexp] (può essere usato più volte);
Riga 74: Riga 69:
; <code>--limit-priority=regex</code>: 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);
; <code>--limit-priority=regex</code>: 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);


; <code>--include=regex</code>: vengono inclusi i file che soddisfano l'espressione regolare [regexp] (può essere usato più volte);
; <code>--include-field=fieldname=regex</code>: non escludere i pacchetti il cui campo soddisfa l'espressione regolare [regexp] (può essere usato più volte);


; <code>--skippackages</code>: non scarica i file <code>Packages</code> e <code>Sources</code> (utile se questi file sono già aggiornati);
; <code>--skippackages</code>: non scarica i file <code>Packages</code> e <code>Sources</code> (utile se questi file sono già aggiornati);
Riga 86: Riga 81:
; <code>--dry-run</code>: esegue una simulazione, senza scaricare i file e pulire il mirror;
; <code>--dry-run</code>: esegue una simulazione, senza scaricare i file e pulire il mirror;


; <code>--rsync-options=options</code>: Specifica le opzioni da passare a rsync [Default: -aIL --partial];
; <code>--rsync-options=options</code>: Specifica le opzioni da passare a rsync [Default: -aIL --partial]. Utile è anche l'opzione <code>--bwlimit=x</code> che consente di impostare la larghezza di banda massima da usare per il download;
 
Utile è anche l'opzione <code>--bwlimit=x</code> che consente di impostare la larghezza di banda massima da usare per il download.


; <code>--ignore-small-errors</code>: 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;
; <code>--ignore-small-errors</code>: 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;
Riga 95: Riga 88:


==Utilizzo==
==Utilizzo==
 
L'utilizzo è semplice: basta indicare solo quello necessario e lui provvederà a scaricare tutti i file necessari.<br/>
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.
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:
Ecco alcuni esempi di utilizzo:
* Mirror completo di sarge:
* Mirror completo di Debian 10 ([[Buster]]) dal redirector (http://deb.debian.org), che dovrebbe scegliere il [[mirror]] più veloce:
 
<pre>
<pre>
$ debmirror -p -d sarge --ignore-small-errors --ignore-release-gpg /path/to/dir
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg /path/to/dir
</pre>
</pre>
(<code>'''--ignore-small-errors --ignore-release-gpg'''</code> 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.)
(<code>'''--ignore-small-errors --ignore-release-gpg'''</code> 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:
* Mirror dei file che non appartengono alla sezione 'games', escludendo anche i sorgenti sorgenti:
<pre>
<pre>
$ debmirror -p -d sarge --ignore-small-errors --ignore-release-gpg --exclude="games" --nosources /path/to/dir
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg --exclude="games" --nosource /path/to/dir
</pre>
</pre>


* Mirror di tutta Sarge (Sorgenti esclusi):
* Mirror di tutta Buster (sorgenti esclusi):
<pre>
<pre>
$ debmirror -p -d sarge --ignore-small-errors --ignore-release-gpg --nosources /path/to/dir
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg --nosource /path/to/dir
</pre>
</pre>


Riga 122: Riga 111:


==Debmirror e Cron==
==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 <code>/etc/crontab</code> è possibile programmare l'esecuzione di debmirror.


Può essere utile, per mantenere aggiornato il mirror, lanciare debmirror ad intervalli regolari (magari ogni giorno).
Così, aggiungendo una semplice riga a <code>/etc/crontab</code> è possibile programmare l'esecuzione di debmirror.
Ecco un esempio, che programma l'esecuzione del mirroring alle 00.00 di ogni giorno:
Ecco un esempio, che programma l'esecuzione del mirroring alle 00.00 di ogni giorno:
<pre>
<pre>
0 0 * * * maxer /usr/bin/debmirror -d sarge --ignore-small-errors --ignore-release-gpg --arch=none --nosource /store3/deb/
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/
</pre>
</pre>
così il mirror verrà aggiornato di notte, evitando eventuali problemi di banda o di carico eccessivo del sistema!
così il mirror verrà aggiornato di notte, evitando eventuali problemi di banda o di carico eccessivo del sistema!


== Considerazioni sull'Utilizzo ==
== Considerazioni sull'Utilizzo ==
Riga 138: Riga 125:
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.
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 (anche se oramai può venir tranquillamente sostituito da apt-cache o simili).
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!
Dopo queste piccole considerazioni, happy Debian!
Riga 144: Riga 131:
{{Autori
{{Autori
|Autore=[[User:MaXeR|MaXeR]]
|Autore=[[User:MaXeR|MaXeR]]
|Verificata_da=
:[[Utente:HAL 9000|HAL 9000]] 16:25, 27 set 2019 (CEST)
|Numero_revisori=1
}}
}}


[[Categoria:Creare repository]]
[[Categoria:Creare repository]]
3 581

contributi