Apt-mirror
Indice
Mirror dei Repository
Spesso, durante i nostri install party, la banda è condivisa su molte stazioni di lavoro. questo comporta tempi di update e install delle distro piuttosto lunghi.
Una prima soluzione potrebbe essere un proxy cache che funziona bene come tecnica ma necessita di una banda funzionante alla prima richiesta dei pacchetti.
Una seconda soluzione, per un completa installazione off line è la completa replica dei repository della distro in in container locale. L'idea è di avere spazio disco, copiare in locale tutti i pacchetti della distro per poterli utilizzare off line.
Pachetto apt-mirror
Lo strumento apt-mirror è sviluppato appositamente per questo tipo d'esigenza : clonare un repository.
Lo si trova nei pacchetti debian (ad oggi la stable è jessie e lo si trova nella versione apt-mirror (0.5.1-1)).
Un interessante articolo ne propone l'utilizzo assieme ad un FTP Server,vedremo in una seconda fase come utilizzare tale server.
Prerequisiti
Spazio disco
Purtroppo sono necessari circa 60 GB per repository per architettura. Ad esempio se intendete preparare un repo per amd64 e i386 dovrete prevedere circa 120 GB di spazio.
connettività
L'accesso ad internet o ad un repo funzionante è condizione necessaria.
Installazione
# apt-get install apt-mirror
Configurazione
# nano /etc/apt/mirror.list
File esempio
Per costruire un mirror Ubuntu e Debian ho utilizzato il seguente esempio :
############# config ################## #Notes by Roby.deb # #set base_path /var/spool/apt-mirror set base_path /opt/apt-mirror #percorso dove salvare il clone del mirror # # 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 <running host architecture> # set postmirror_script $var_path/postmirror.sh # set run_postmirror 0 set nthreads 20 set _tilde 0 # ############# end config ############## #deb http://ftp.us.debian.org/debian stable main contrib non-free #da usare in combinata con set defaultarch <running host architecture> #deb-src http://ftp.us.debian.org/debian stable main contrib non-free #per maggiore flessibilità ho preferito esplicitare la versione # mirror additional architectures #deb-alpha http://ftp.us.debian.org/debian stable main contrib non-free #deb-amd64 http://ftp.us.debian.org/debian stable main contrib non-free #Potete scegliere il repo che preferite, nell'architettura desiderata. deb-amd64 http://ftp.us.debian.org/debian stable main contrib non-free #repo stable debian deb-amd64 http://ftp.us.debian.org/debian stable-updates main contrib non-free #repo stable updates debian deb-amd64 http://security.debian.org/ stable/updates main contrib non-free #repo security #deb-armel http://ftp.us.debian.org/debian stable main contrib non-free #deb-hppa http://ftp.us.debian.org/debian stable main contrib non-free #deb-i386 http://ftp.us.debian.org/debian stable main contrib non-free #deb-ia64 http://ftp.us.debian.org/debian stable main contrib non-free #deb-m68k http://ftp.us.debian.org/debian stable main contrib non-free #deb-mips http://ftp.us.debian.org/debian stable main contrib non-free #deb-mipsel http://ftp.us.debian.org/debian stable main contrib non-free #deb-powerpc http://ftp.us.debian.org/debian stable main contrib non-free #deb-s390 http://ftp.us.debian.org/debian stable main contrib non-free #deb-sparc http://ftp.us.debian.org/debian stable main contrib non-free ## Ubuntu trusty (14.04) deb-amd64 http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse #repo main ubuntu deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse #repo security ubuntu deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse #repo updates ubuntu clean http://ftp.us.debian.org/debian #il comando clean pulisce i pacchetti obsoleti clean http://archive.ubuntu.com/ubuntu #il comando clean pulisce i pacchetti obsoleti
TO DO
La cartella /opt/apt-mirror non esiste di default, andrà creata con
# mkdir -p /opt/apt-mirror
Avvio apt-mirror
Il comando
# apt-mirror
avvia il "download dei pacchetti e la "clonazione del repo".
Downloading 90 index files using 20 threads... Begin time: Wed Apr 6 15:52:56 2016 [20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... End time: Wed Apr 6 15:52:57 2016 Processing tranlation indexes: [TTT] Downloading 44 translation files using 20 threads... Begin time: Wed Apr 6 15:52:57 2016 [20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... End time: Wed Apr 6 15:52:57 2016 Processing indexes: [P
se non vi sono errori potete procedere il tutto sta funzionando.
Errori
In caso di errori, valgono gli stessi controlli che vengono svolti per i repo :
- controllate la vostra connettività di rete
- controllate l'accesso ai mirror (anche con il browser)
- controllate lo spazio su disco.
Server FTP
L'articolo suggerisce l'addozione del server proftpd-basic.
Anche proftpd-basic è disponibile in Jessie nella versione 1.3.5.
Installazione
# apt-get install proftpd-basic
Configurazione
Accesso anonimo
Per rendere possibile l'accesso anonimo dobbiamo creare e configurare il seguente file :
# nano /etc/proftpd/conf.d/anonymous.conf
<Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp RequireValidShell off # MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Mount bind
Un mount bind è una visualizzazione alternativa di un albero di directory . Solitamente , mount crea una vista di un dispositivo di memorizzazione , come un albero di directory .
Un mount bind invece prende un albero di directory esistente e lo replica sotto un altro punto . Le directory e i file sono le stesse dell'originale . Qualsiasi modifica su un lato si riflette immediatamente sul lato opposto , in quanto le due viste mostrano gli stessi dati
Applicazione del mount bind
# mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/ /srv/ftp/
Se volete potete aggiungere una seconda architettura :
# mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/
Tip 'n Trick
Trovare il mirror migliore
Prima d'iniziare la clonazione del mirror, può avere senso investigare su quale sia il più veloce. Come sappiamo molti elementi influenzano la velocità di download da un repository :
- distanza geografica
- tecnologia di connessione
- provider
e molti altri ...
Per scoprire quale mirror ci dà le migliori performance esiste un pacchetto
# apt-get install netselect-apt
Note
Per approfondimenti si veda :
Sito ufficiale del progetto
esempio di configurazione
Link
https://apt-mirror.github.io/
http://www.tecmint.com/setup-local-repositories-in-ubuntu/
https://wiki.debian.org/SourcesList
https://www.howtoforge.com/local_debian_ubuntu_mirror
https://www.packtpub.com/books/content/create-local-ubuntu-repository-using-apt-mirror-and-apt-cacher
http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror
http://www.pendrivelinux.com/how-to-set-up-your-own-debian-linux-mirror/