In questo (mini)-howto descriverò "come fare" per creare un mirror locale dopo una breve riflessione sull'effettiva convenienza.

by Enrico Bassetti - http://www.enricobassetti.altervista.org/guide/apt-mirror.php

Indice:

  1. Prerequisiti
  2. Mirror locale: vantaggi e svantaggi
  3. Lista repository

Prerequisiti

Con i sistemi debian-based basta fare:

$ apt-get install apt-mirror

che siamo in pista; tuttavia se dobbiamo creare un mirror usando un'altra distribuzione possiamo scaricare il pacchetto sorgente da qui (compatibile con tutti i sistemi con wget e perl, quindi anche CygWin.

Mirror locale: vantaggi e svantaggi

Perché creare un mirror locale? innanzitutto dobbiamo distinguere due fasce di utenti:

  • l'utente casalingo
  • l'utente "professionale" (aka: sysadmin in azienda, tecnico in qualche negozio, LUG, ecc.)

Per la prima tipologia non è assolutamente necessario creare un mirror locale, anche se il parco macchine è abbastanza "ampio". Difatti un mirror comincia a diventare conveniente quando hai la possibilità di condividere la connettività oppure hai internamente un parco macchine con linux che necessita aggiornamenti continui. In questo caso risulta conveniente infatti far scaricare ad un solo PC i pacchetti, e poi i computer li aggiorneranno automaticamente (o semi-automaticamente, a seconda delle impostazioni) senza occupare banda sulla connessione ad internet. Può essere particolarmente utile negli ambienti di test, dove la macchina viene reinstallata diverse volte, oppure in ambienti di "riparazione", dove è necessario aggiornare/reinstallare la macchina ex-novo: la possibilità di un mirror locale velocizza le operazioni di aggiornamento riducendo il tempo al solo spacchettamento e posizionamento dei file sul PC.

Lista repository

Il file di configurazione di apt-mirror si trova alla locazione /etc/apt/mirror.list (nei sistemi debian[-based]) oppure nella directory di esecuzione (nel caso del sorgente). Un mirror.list per i sistemi Ubuntu (versione 7.10 gutsy) può essere:

############# config ##################
#
set base_path    /media/hdd1/apt-mirror/
#
# if you change the base path you must create the directories below with write privlages
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  
set nthreads     10
set tilde 0
#
############# end config ##############

deb http://it.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse
deb http://it.archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse
deb http://it.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse
deb http://it.archive.ubuntu.com/ubuntu gutsy-proposed main restricted universe multiverse

#deb-src http://it.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse
#deb-src http://it.archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse
#deb-src http://it.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse
#deb-src http://it.archive.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse
#deb-src http://it.archive.ubuntu.com/ubuntu gutsy-proposed main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ gutsy-security universe main multiverse restricted
#deb-src http://security.ubuntu.com/ubuntu/ gutsy-security universe main multiverse restricted

deb http://archive.canonical.com/ubuntu gutsy partner
#deb-src http://archive.canonical.com/ubuntu/ gutsy partner

deb http://packages.medibuntu.org/ gutsy free non-free

clean http://it.archive.ubuntu.com/ubuntu
clean http://packages.medibuntu.com/
clean http://archive.canonical.com/ubuntu
clean http://security.ubuntu.com/ubuntu

Ho commentato volutalmente tutta la parte relativa alle sorgenti, anche se sarebbero comode, poichè in molti casi non servono e comunque occupano altrettanto spazio su disco (e quindi il doppio del tempo per scaricare). Ovviamente siete liberi di decommentare le righe per far scaricare i pacchetti sorgente ;-)

PS: mediubuntu non ha sorgenti e ha bisogno di aggiungere la chiave mediante il comando:

wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O - | sudo apt-key add -