Debmirror: creiamo un mirror Debian: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (Sistemati i Titoli)
Riga 1: Riga 1:
==Introduzione==
==Introduzione==
In questo tutorial analizzeremo apt-proxy.
 
Apt-proxy � un comodo strumento per mantenere una cache dei pacchetti Debian gi�
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 ad internet (o lo sono tramite una connessione troppo lenta).
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 debmirror è sufficiente un
<pre>
<pre>
# apt-get install apt-proxy
# apt-get install debmirror
</pre>
</pre>
 
Un consiglio, nel caso in cui venga creato un mirror per effettuare una installazione od 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).
{{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==


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


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
==Opzione e Parametri==
configurazione sono commentate:


La 'sintassi' del comando è la seguente:
<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:


; 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


===Versione 2===
; --debug : Abilita il Debug


In questo periodo � stata rilasciata la versione 2 di apt-proxy
; --progress -p : 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.
; --verbose -v : 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>
; --source : 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
; --nosource: 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
; --md5sums -m: Utilizza l'md5 per verificare quali 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
; --passive: Esegui il download in modalità 'passiva'
;;
;; Intervallo minimo prima di aggiornare un file
min_refresh_delay = 240


;; Vita minima di un file prima che venga aggiornato (NOT YET IMPLEMENTED)
; --host=remotehost -h: Indica qualche host utilizzare, si invita a controllare il mirror più vicino a questo indirizzo: http://www.debian.org/mirror/list , consentendo così una migior ripartizione del traffico sui mirror presenti. (Default: ftp.debian.org)
;min_age = 23h


;; Rimuovi il commento da questa direttiva per fare in modo che
; --user=remoteusername -u : Sperifica 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.
;--method=ftp|hftp|http|rsync -e : Specifica quale metodo utilizzare per effettuare il download dei file. Sono supportati: ftp, http, hftp (ftp over http) rsync (per questo protocollo bisogna preporre ':' alla root directory dell'host remoto, ad esempio ":debian")
;; for all debug information use this:
;; debug = all:9
debug = all db:3


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


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


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


;; Usa FTP passivo (default=on)
; --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); i link (stable, unstable, testing) potrebbero non funzionare, quindi si invita ad utilizzare il nome della release). [Default: sid]
;passive_ftp = on


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


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


;;--------------------------------------------------------------
; --cleanup: Esegue una pulizia della directory in cui verrà creato il mirror. [Default: on]
;; Cache housekeeping


;; Time to perform periodic housekeeping:
; --nocleanup: Non esegue la pulizia del mirror al termine della creazione dello stesso
;;  - 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)
; --postcleanup: Esegue la pulizia del mirror locale solo quando il mirroring è terminato senza errori
max_age = 14d


;; Maximum number of versions of a .deb to keep per distribution
; --ignore=regex: 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)
; --exclude=regex: Non esegue il download dei file che soddisfano l'espressione regolare (può essere usato più volte)
;dynamic_backends = on


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


;[debian]
; --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)
;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]
; --include=regex: Vengono inclusi i file che soddisfano 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]
; --skippackages: Non scarica i file Packages e Sources (utile se questi file sono già aggiornati)
;; Apt-proxy new versions
;backends = http://apt-proxy.sourceforge.net/apt-proxy


;[backports.org]
; --getcontents: Scarica il file Contents.arch.gz
;; backports.org
;backends = http://backports.org/debian


;[blackdown]
;--ignore-missing-release: 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]
;--ignore-release-gpg: Non lancia un errore se non è presente il file Release.gpg (consigliato)
;; The Emdebian project
;backends = http://emdebian.sourceforge.net/emdebian


;[rsync]
;--dry-run: 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]
;--rsync-options=options: Specifica le opzioni da passare a rsync. [Default: -aIL --partial]
backends =
Utile è anche l'opzione "--bwlimit=x" che consente di impostare la larghezza di banda massima da usare per il download
        http://ftp.it.debian.org/debian


[non-US]
;--ignore-small-errors: Ignora degli errori 'piccoli' o 'poco sognificanti' 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]
;--help: Visualizza un help.
backends =
        http://security.debian.org


[blackdown]
backends =
        http://ftp.gwdg.de/pub/languages/java/linux/debian


[marillat]
==Utilizzo==
backends =
        ftp://ftp.nerim.net/debian-marillat


[jedit]
L'utilizzo è semplice: basta indicare solo quello necessario e lui provvederà a scaricare tutti i file necessari.
backends =
Verrà creata una struttura uguale a quella di un mirror Debian ed eventualmente (se già presente) verranno controllati ed aggiornati i pacchetti vecchi.
        http://dl.sourceforge.net/sourceforge/jedit


[mythtv]
Ecco alcuni esempi di utilizzo:
backends =
* Mirror completo di sarge:
        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:


<pre>
<pre>
# apt-proxy-import
$ debmirror -p -d sarge --ignore-small-errors --ignore-release-gpg /path/to/dir
</pre>
</pre>


Comando utilissimo durante la prima installazione: consente di importare dei
pacchetti Debian gi scaricati nella cache di apt-proxy.
Utilizzo:


<pre>
('''--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.
# 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:


* Mirror dei file che non appartengono alla sezione 'games', escludendo anche i sorgenti sorgenti:
<pre>
<pre>
# apt-proxy-v1tov2 [v1_conf [v2_sample_conf]] > v2_conf
$ debmirror -p -d sarge --ignore-small-errors --ignore-release-gpg --exclude="games" --nosources /path/to/dir
</pre>
</pre>


Di default utilizza /etc/apt-proxy/apt-proxy.conf per v1_conf e
* Mirror di tutta Sarge (Sorgenti esclusi):
/etc/apt-proxy/apt-proxy-v2.conf per v2_sample_conf.
 
<pre>
<pre>
# /etc/init.d/apt-proxy
$ debmirror -p -d sarge --ignore-small-errors --ignore-release-gpg  --nosources /path/to/dir
[start|stop|restart|force-reload]
</pre>
</pre>


Script di gestione di apt-proxy:
Come potete vedere da questi 3 esempi, l'utilizzo è molto semplice ed immediato.
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
==Debmirror e Cron==
/etc/apt/sources.list
mettendo come server indirizzo_server:9999
 
 
===Esempio===
Se prima, nel nostro sources.list avevamo una riga del tipo:


Può essere utile, per manterene aggiornato il mirror, lanciare debmirror ad intervalli regolari (magari ogni giorno)...
Così, aggiungengo 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:
<pre>
<pre>
deb http://ftp2.it.debian.org/debian/ testing main
0 0 * * * maxer /usr/bin/debmirror -d sarge --ignore-small-errors --ignore-release-gpg --arch=none --nosource /store3/deb/
non-free contrib
</pre>
</pre>
così il mirror verrà aggiornato di notte, evitando eventuali problemi di banda o di carico eccessivo del sistema!


non ci baster che seguire questi passi, per configurare il server e i client:


1) inseriamo il backend nel server, se non � gi� presente:
==Considerazioni sull'Utilizzo==
<pre>[debian]
backends =
http://ftp2.it.debian.org/debian/
</pre>


2) modifichiamo il soruces.list dei client:
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:
<pre>
* 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.
deb http://indirizzoserver:9999/debian/ testing main non-free contrib
* 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'.
</pre>
* [http://guide.debianizzati.org/index.php/Apt-zip:_aggiornamenti_senza_una_connessione_veloce Apt-zip] è spesso molto più comodo da utilizzare, ed anche più veloce...
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...


3) aggiorniamo apt-proxy
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).
<pre>
# /etc/init.d/apt-proxy force-reload
</pre>


4) aggiorniamo con
Dopo queste piccole considerazioni, happy Debian!
<pre>
# apt-get update
</pre>
 
 
Fine!


Lettura Consigliata: [[Apt-Proxy: un proxy per i pacchetti Debian]]


---- [[User:MaXeR|MaXeR]]
---- [[User:MaXeR|MaXeR]]
[[Categoria:Apt]]
[[Categoria:Repository]]

Versione delle 21:00, 16 mag 2005

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 ad 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 è sufficiente un

# apt-get install debmirror

Un consiglio, nel caso in cui venga creato un mirror per effettuare una installazione od 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).


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
--md5sums -m
Utilizza l'md5 per verificare quali file nel mirror locale sono corretti ed aggiornati, è disabilitato di default in quanto lento e 'paranoico'
--passive
Esegui il download in modalità 'passiva'
--host=remotehost -h
Indica qualche host utilizzare, si invita a controllare il mirror più vicino a questo indirizzo: http://www.debian.org/mirror/list , consentendo così una migior ripartizione del traffico sui mirror presenti. (Default: ftp.debian.org)
--user=remoteusername -u
Sperifica l'utente remoto per accedere all'host remoto (normalmente va benissimo il valore di default) [Default: anonymous]
--method=ftp|hftp|http|rsync -e
Specifica quale metodo utilizzare per effettuare il download dei file. Sono supportati: ftp, http, hftp (ftp over http) rsync (per questo protocollo bisogna preporre ':' alla root directory dell'host remoto, ad esempio ":debian")
--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 directory "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); i link (stable, unstable, testing) potrebbero non funzionare, quindi si invita ad utilizzare il nome della release). [Default: sid]
--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)
--cleanup
Esegue una pulizia della directory in cui verrà creato il mirror. [Default: on]
--nocleanup
Non esegue la pulizia del mirror al termine della creazione dello stesso
--postcleanup
Esegue la pulizia del mirror locale solo quando il mirroring è terminato senza errori
--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=regex
Vengono inclusi i file che soddisfano 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 sognificanti' 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 sarge:
$ debmirror -p -d sarge --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 -d sarge --ignore-small-errors --ignore-release-gpg --exclude="games" --nosources /path/to/dir
  • Mirror di tutta Sarge (Sorgenti esclusi):
$ debmirror -p -d sarge --ignore-small-errors --ignore-release-gpg  --nosources /path/to/dir

Come potete vedere da questi 3 esempi, l'utilizzo è molto semplice ed immediato.

Debmirror e Cron

Può essere utile, per manterene aggiornato il mirror, lanciare debmirror ad intervalli regolari (magari ogni giorno)... Così, aggiungengo 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 -d sarge --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'.
  • Apt-zip è spesso molto più comodo da utilizzare, ed anche più veloce...

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).

Dopo queste piccole considerazioni, happy Debian!

Lettura Consigliata: Apt-Proxy: un proxy per i pacchetti Debian


MaXeR