Debmirror: creiamo un mirror Debian: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (firma)
m (aggiunto link)
 
(20 versioni intermedie di 8 utenti non mostrate)
Riga 1: Riga 1:
==Introduzione==
{{Versioni compatibili|Jessie|Stretch|Buster}}
In questo tutorial analizzeremo apt-proxy.
== Introduzione ==
Apt-proxy � un comodo strumento per mantenere una cache dei pacchetti Debian gi�
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/>
scaricati, riuscendo cos� a velocizzare il download da parte di altri client
'''Debmirror''' ci viene in aiuto, dando la possibilità di creare un [[mirror]] locale.
connessi alla stessa Lan ed a risparmiare un po' di banda, soprattutto nei casi
in cui questa � a pagamento =)


==Installazione==
==Installazione==
Per installarlo � sufficiente dare il seguente comando:
Per installare <code>debmirror</code> con [[privilegi di amministrazione]] è sufficiente:
<pre>
<pre>
# apt-get install apt-proxy
# 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.
{{Box|NOTA|In questo periodo sta avvenendo la transizione tra la versione 1 e la versione 2. In questo howto verranno analizzate entrambe le versioni, e verr� illustrato anche il passaggio dalla v1 alla v2.}}
 


==Configurazione==
==Configurazione==
Il programma non richiede configurazione, in quanto tutti gli eventuali parametri devono essere passati tramite riga di comando.


===Versione 1===
==Opzione e Parametri==
 
La 'sintassi' del comando è la seguente:
La configurazione � molto semplice; tutti i parametri sono contenuti in un file:
/etc/apt-proxy/apt-proxy.conf
 
Ne riporto una versione semplificata, in cui le varie variabili di
configurazione sono commentate:
 
<pre>
<pre>
-------------------------------------------------------
$ debmirror [OPZIONI] mirrordir
# imposta la directory in cui salvare al cache
APT_PROXY_CACHE=/var/cache/apt-proxy
 
# Esempio per il repository ufficiale Debian
# Debian main
#
# Qui di seguito sono riportate le righe da inserire in un ipotetico
sources.list
# ovviamente sostituendo APTPROXY con l'indirizzo del server che funge da proxy.
#deb http://APTPROXY:9999/debian stable main contrib non-free
#deb http://APTPROXY:9999/debian woody main contrib non-free
#deb http://APTPROXY:9999/debian sarge main contrib non-free
#deb http://APTPROXY:9999/debian sid main contrib non-free
#deb http://APTPROXY:9999/debian project/experimental/main/binary-$(ARCH)/
 
# Qui aggiungiamo un backend, indicando la directory in cui verr� creata la
cache
# La prima riga contiene la dichiarazione del backend, la seconda indica un
repository
# locale (quello della cache), dalla seconda alla penultima sono indicati i vari
mirror
# ufficiali, l'ultima indica un collegamento `alternativo` a http, cio� via
ftp...
# Da notare l'importanza delle backslash a fineriga (ultima riga esclusa)
add_backend /debian/
$APT_PROXY_CACHE/debian/
http://ftp2.it.debian.org/debian/
# http://ftp.de.debian.org/debian/
# http://ftp.uk.debian.org/debian/
# +ftp.us.debian.org::debian/
 
 
 
############################## OTHER VARS ##################################
# Qui sono presenti le variabili di configurazione
#
# Dopo quanti giorni devono essere eliminati i pacchetti vecchi;
# Se impostata a 0, attiva l'eliminazione immediata dei vecchi pacchetti
(sconsigliata)
CLEANUP_DAYS=14
 
# Dopo quanti giorni verranno cancellati i pacchetti considerati vecchi,
raramente utilizzati
# Commentarla per disabilitare questa funzione.
CLEAN_SWEEP=60
 
# Il numero massimo di versioni di un pacchetto da conservare in memoria.
# Commentarla per disabilitare questa funzione.
MAX_VERSIONS=2
 
# Frequenza massima, in minuti, degli aggiornamenti dei pacchetti
# Impostare un valore abbastanza alto per avere delle buone performance.
BACKEND_FREQ=240
 
# Quanti secondi devono passare prima che RSYNC vada in TimeOut
RSYNC_TIMEOUT=30
 
# Quanti secondi devono passare prima che RSYNC vada in TimeOut
WGET_TIMEOUT=30
 
# Consente di impostare il path dell'eseguibile di wget e/o di appendere delle
opzioni all'eseguibile
#WGET=wget
 
# Consente di impostare il path dell'eseguibile di rsync e/o di appendere delle
opzioni all'eseguibile
#RSYNC=rsync
 
# Per appoggiarsi ad un proxy per il download dei pacchetti:
#export http_proxy=http://proxy:8080/
#export ftp_proxy=http://proxy:8080/
# in caso di necessit�, � possibile gestire l'autenticazione:
#export http_proxy=http://user:pass@proxy:8080/
#export ftp_proxy=http://user:pass@proxy:8080/
 
-------------------------------------------------------
</pre>
</pre>
con i seguenti parametri:


; <code>mirrordir</code>: 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;


===Versione 2===
; <code>--debug</code>: abilita il Debug;


In questo periodo � stata rilasciata la versione 2 di apt-proxy
; <code>--progress -p</code>: visualizza una barra di avanzamento per monitorare lo stato del mirroring;
(http://apt-proxy.sourceforge.net/).
Le migliorie sono tante, e invito a fare una visitina al sito ufficiale.
Prima di passare all'analisi del nuovo file di configurazione, vorrei
sottolineare che, ora, apt-proxy gira come servizio, con relativo script di
avvio/riavvio/stop: /etc/init.d/apt-proxy. Questo vuole dire che, ogni volta che viene modificato il file, conviene riavviare il server apt-proxy.


Analizziamo il file di configurazione di questa nuova versione.
; <code>--verbose -v</code>: visualizza una barra di avanzamento tra i download dei file;
Come per il file di configurazione precedente, riporto una copia del mio file
di configurazione, commentando i vari parametri.


<pre>
; <code>--source</code>: include i pacchetti dei sorgenti nel mirror [Default];
[DEFAULT]
;; Tutti i valori usati per il tempo sono espressi in secondi, � possibile
;; per� indicarli anche in minuti(m), ore(h) o giorni(d), postponendo al numero
;; la lettera distintiva dell'unit� di misura.


;; � possibile impostare l'ip al quale risponde il server
; <code>--nosource</code>: non include i sorgenti dei programmi nel mirror;
;; utile per limitare l'accesso (ad esempio non renderlo accessibile
;; dall'esterno)
;address = 192.168.0.254


;; Porta a cui il server presta ascolto
; <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';
port = 9999


;; Intervallo di refresh per Packages/Sources/Contents
; <code>--passive</code>: esegue il download in modalità 'passiva' quando usa il protocollo [[FTP]];
;;
;; Intervallo minimo prima di aggiornare un file
min_refresh_delay = 240


;; Vita minima di un file prima che venga aggiornato (NOT YET IMPLEMENTED)
; <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);
;min_age = 23h


;; Rimuovi il commento da questa direttiva per fare in modo che
; <code>--user=remoteusername -u</code>: specifica l'utente remoto per accedere all'host remoto (normalmente va benissimo il valore di default) [Default: anonymous];
;; apt-proxy continui a scaricare anche se il client si disconnettr
;; Utile per connessioni always-on (ADSL...)
;; complete_clientless_downloads = 1


;; Debugging settings.
; <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;
;; for all debug information use this:
;; debug = all:9
debug = all db:3


;; Debugging remote python console
; <code>--proxy=http://user:pass@url:port/</code>: specifica i parametri per la connessione tramite proxy;
;; Do not enable in an untrusted environment
;telnet_port = 9998
;telnet_user = apt-proxy
;telnet_password = secret


;; Timeout mentre si ricevono dati da un server
; <code>--timeout=seconds -t</code>: Specifica l'intervallo prima che il download di un file vada in timeout [Default: 300 secondi];
timeout = 30


;; Cache directory di apt-proxy
; <code>--root=directory -r directory</code>: specifica la root directory dell'host remoto. Normalmente è "/debian". In questa directory è contenuta la sottodirectory "dists" [Default: /debian];
cache_dir = /var/cache/apt-proxy


;; Usa FTP passivo (default=on)
; <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);
;passive_ftp = on


;; Usa un proxy apt
; <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];
;http_proxy = host:port


;; Disable HTTP pipelining within apt-proxy (for test purposes)
; <code>--arch=foo[,bar,..] -a foo</code>: specifica la architettura (o le architetture) di cui effettuare il mirroring [Default: i386];
;disable_pipelining=1


;;--------------------------------------------------------------
; <code>--postcleanup</code>: esegue la pulizia del mirror locale solo quando il mirroring è terminato senza errori [Default];
;; Cache housekeeping


;; Time to perform periodic housekeeping:
; <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;
;; - delete files that have not been accessed in max_age
;; - scan cache directories and update internal tables
cleanup_freq = 60d


;; Maximum age of files before deletion from the cache (seconds)
; <code>--nocleanup</code>: non esegue la pulizia del mirror al termine della creazione dello stesso;
max_age = 14d


;; Maximum number of versions of a .deb to keep per distribution
; <code>--ignore=regex</code>: non elimina i file che rispondono l'espressione regolare [regexp] (può essere usato più volte);
max_versions = 2


;; Add HTTP backends dynamicaly if not already defined? (default=on)
; <code>--exclude=regex</code>: non esegue il download dei file che soddisfano l'espressione regolare (può essere usato più volte);
;dynamic_backends = on


;;---------------------------------------------------------------
; <code>--exclude-deb-section=regex</code>: non esegue il download dei file contenuti nella sezione che soddisfa l'espressione regolare [regexp] (può essere usato più volte);
;;---------------------------------------------------------------
;; Backend servers
;;


;[debian]
; <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);
;Questo backend � stato commentato, per prevenire problemi durante
;l'importazione dei backend dalla versione 1onfiguration
;
;;; The main Debian archive
;;; � possibile sovrascrivere la direttiva `timeout` di default:
;;timeout = 30
;
;;; Rsync server (NOT YET IMPLEMENTED)
;;;rsyncpackages = rsync://ftp.de.debian.org/debian
;
;;; Backend server, in ordine di preferenza
;backends =
;      http://ftp.us.debian.org/debian
;      http://ftp.de.debian.org/debian
;      http://ftp2.de.debian.org/debian
;      ftp://ftp.uk.debian.org/debian
;
;
;[non-US]
;; Debian non-US archive
;timeout non � stata sovrascritta, quindi verr� mantenuto il
;valore di default
;backends =
;      http://ftp.uk.debian.org/debian-non-US
;       http://ftp.de.debian.org/debian-non-US
;      ftp://ftp.uk.debian.org/debian


;[security]
; <code>--include-field=fieldname=regex</code>: non escludere i pacchetti il cui campo soddisfa l'espressione regolare [regexp] (può essere usato più volte);
;Questo backend � stato commentato, per prevenire problemi durante
;l'importazione dei backend dalla versione 1onfiguration
;
;;; Debian security archive
;backends =
;      http://security.debian.org/debian-security
;      http://ftp2.de.debian.org/debian-security
;
;[openoffice]
;; OpenOffice.org packages
;backends =
;      http://ftp.freenet.de/pub/debian-openoffice
;      http://ftp.sh.cvut.cz/MIRRORS/OpenOffice.deb
;      http://borft.student.utwente.nl/debian


;[apt-proxy]
; <code>--skippackages</code>: non scarica i file <code>Packages</code> e <code>Sources</code> (utile se questi file sono già aggiornati);
;; Apt-proxy new versions
;backends = http://apt-proxy.sourceforge.net/apt-proxy


;[backports.org]
; <code>--getcontents</code>: scarica il file <code>Contents.arch.gz</code>;
;; backports.org
;backends = http://backports.org/debian


;[blackdown]
; <code>--ignore-missing-release</code>: non lancia un errore se il file Release non è presente nel mirror;
;;; Blackdown Java
;;backends = http://ftp.gwdg.de/pub/languages/java/linux/debian
;
;
;[debian-people]
;; people.debian.org
;backends = http://people.debian.org


;[emdebian]
; <code>--ignore-release-gpg</code>: non lancia un errore se non è presente il file <code>Release.gpg</code> (consigliato);
;; The Emdebian project
;backends = http://emdebian.sourceforge.net/emdebian


;[rsync]
; <code>--dry-run</code>: esegue una simulazione, senza scaricare i file e pulire il mirror;
;; Un esempio di utilizzo con un server rsync. Non � raccomandato
;; il suo utilizzo, a meno che non sia l'unico servizio disponibile:
;; rsync � molto efficiente solo nel trasferimento di dati non compressi
;; e carica molto il server.
;backends = rsync://ftp.uk.debian.org/debian


[debian]
; <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;
backends =
        http://ftp.it.debian.org/debian


[non-US]
; <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;
backends =
        http://debian.fastweb.it/debian-non-US
        http://ftp.debian.org/debian-non-US
        http://ftp.it.debian.org/debian-non-US
        http://ftp2.it.debian.org/debian-non-US


[security]
; <code>--help</code>: Visualizza un help.
backends =
        http://security.debian.org


[blackdown]
==Utilizzo==
backends =
L'utilizzo è semplice: basta indicare solo quello necessario e lui provvederà a scaricare tutti i file necessari.<br/>
        http://ftp.gwdg.de/pub/languages/java/linux/debian
Verrà creata una struttura uguale a quella di un mirror Debian ed eventualmente (se già presente) verranno controllati ed aggiornati i pacchetti vecchi.
 
[marillat]
backends =
        ftp://ftp.nerim.net/debian-marillat
 
[jedit]
backends =
        http://dl.sourceforge.net/sourceforge/jedit
 
[mythtv]
backends =
        http://dijkstra.csh.rit.edu:8088/~mdz/debian/
</pre>
 
Ok, ora abbiamo visto il file di configurazione...che dire: semplicissimo!
Prima di concludere la parte relativa alla configurazione del server, vorrei
mostrare alcuni comandi importanti, utili per la configurazione e l'utilizzo
di apt-proxy:


Ecco alcuni esempi di utilizzo:
* Mirror completo di Debian 10 ([[Buster]]) dal redirector (http://deb.debian.org), che dovrebbe scegliere il [[mirror]] più veloce:
<pre>
<pre>
# apt-proxy-import
$ 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.)


Comando utilissimo durante la prima installazione: consente di importare dei
* Mirror dei file che non appartengono alla sezione 'games', escludendo anche i sorgenti sorgenti:
pacchetti Debian gi� scaricati nella cache di apt-proxy.
Utilizzo:
 
<pre>
# apt-proxy-import --import-dir=/dir/contentente/i/pacchetti
# apt-proxy-v1tov2
</pre>
 
Comodissima utility che converte il file di configurazione della versione 1 in
uno compatibile con la versione 2.
Utilizzo:
 
<pre>
# apt-proxy-v1tov2 [v1_conf [v2_sample_conf]] > v2_conf
</pre>
 
Di default utilizza /etc/apt-proxy/apt-proxy.conf per v1_conf e
/etc/apt-proxy/apt-proxy-v2.conf per v2_sample_conf.
 
<pre>
<pre>
# /etc/init.d/apt-proxy
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg --exclude="games" --nosource /path/to/dir
[start|stop|restart|force-reload]
</pre>
</pre>


Script di gestione di apt-proxy:
* Mirror di tutta Buster (sorgenti esclusi):
start: avvia il server;
stop: lo arresta;
restart: lo raivvia;
force-reload: Forza la rilettura del file di configurazione.
 
==Utilizzo==
 
Niente di pi� semplice: basta modificare il proprio
/etc/apt/sources.list
mettendo come server indirizzo_server:9999
 
 
===Esempio===
Se prima, nel nostro sources.list avevamo una riga del tipo:
 
<pre>
<pre>
deb http://ftp2.it.debian.org/debian/ testing main
$ debmirror -p --method=http -h deb.debian.org -d buster --ignore-small-errors --ignore-release-gpg --nosource /path/to/dir
non-free contrib
</pre>
</pre>


non ci baster� che seguire questi passi, per configurare il server e i client:
Come potete vedere da questi 3 esempi, l'utilizzo è molto semplice ed immediato.


1) inseriamo il backend nel server, se non � gi� presente:
==Debmirror e Cron==
<pre>[debian]
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.
backends =
http://ftp2.it.debian.org/debian/
</pre>


2) modifichiamo il soruces.list dei client:
Ecco un esempio, che programma l'esecuzione del mirroring alle 00.00 di ogni giorno:
<pre>
<pre>
deb http://indirizzoserver:9999/debian/ testing main non-free contrib
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!


3) aggiorniamo apt-proxy
== Considerazioni sull'Utilizzo ==
<pre>
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:
# /etc/init.d/apt-proxy force-reload
*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.
</pre>
*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.


4) aggiorniamo con
Inoltre '''debmirror''' non è designato propriamente per generare 'mirror di installazione', ma per creare mirror locali in LAN di medie dimensioni.
<pre>
# apt-get update
</pre>


Dopo queste piccole considerazioni, happy Debian!


Fine!
== Altre guide ==
* [[Creare immagini iso dei repository Debian]]


{{Autori
|Autore=[[User:MaXeR|MaXeR]]
|Verificata_da=
:[[Utente:HAL 9000|HAL 9000]] 16:25, 27 set 2019 (CEST)
|Numero_revisori=1
}}


---- [[User:MaXeR|MaXeR]]
[[Categoria:Creare repository]]

Versione attuale delle 14:27, 27 set 2019

Debian-swirl.png 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 e Sources (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:

$ 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!

Altre guide




Guida scritta da: MaXeR Swirl-auth40.png Debianized 40%
Estesa da:
Verificata da:
HAL 9000 16:25, 27 set 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized