Loading...
 
Skip to main content

History: xarx@ntoni

Preview of version: 2

Objectiu

Apt-mirror és un paquet que permet crear un mirall (mirror) d'un repositori de paquets tipus Debian. Amb apt-mirror podem millorar l'us d'ample de banda en instal·lacions amb un gran nombre de màquines que utilitzin un sistema de repositori de paquets com per exemple Ubuntu o Debian.

Requeriments previs

  • Espai en disc: Depenent del nombre de versions i seccions del repositori que vulguem duplicar necessitarem més o menys espai en disc. Per exemple, totes les seccions (main, restricted, universe i multiverse) d'una distribució com Ubuntu ocupen aproximadament uns 25Gb.
  • Ample de banda i temps: Depenent de l'ample de banda del que disposem la primera creació del mirall representarà una bona estona de connexió aInternet per tal de descarregar els Gb del repositori.
  • aflkasdlfahilshdfa

Instal·lació

sudo apt-get install apt-mirror

Configuració

Copy to clipboard
</p> <p>El fitxer de configuració d'apt-mirror és <strong>/etc/apt/mirror</strong>:</p> <pre>$ cat /etc/apt/mirror.list<br />############# config ##################<br />#<br /># set base_path /var/spool/apt-mirror<br />#<br /># if you change the base path you must create the directories below with write privlages<br />#<br /># set mirror_path $base_path/mirror<br /># set skel_path $base_path/skel<br /># set var_path $base_path/var<br /># set cleanscript $var_path/clean.sh<br /># set defaultarch <running host architecture><br />set nthreads 20<br />set tilde 0<br />#<br />############# end config ############## <br /><br />deb <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> edgy main restricted universe multiverse<br />deb <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> edgy-security main restricted universe multiverse <br /><br />deb-src <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> edgy main restricted universe multiverse<br />deb-src <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> edgy-security main restricted universe multiverse<br /><br />deb <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> dapper main restricted universe multiverse<br />deb <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> dapper-security main restricted universe multiverse<br />deb-src <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> dapper main restricted universe multiverse<br />deb-src <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a> dapper-security main restricted universe multiverse <br /><br />clean <a class="external" href="http://ch.archive.ubuntu.com/ubuntu">http://ch.archive.ubuntu.com/ubuntu</a></pre> <p>El fitxer de configuració és molt semblant a l'utilitzat per <a title="Sergi Tur HOWTOS" href="http://10.0.2.2/mediawiki/index.php/Sergi_Tur_HOWTOS#Repositoris.2C_gesti.C3.B3_de_paquets.2C_apt.2C_dpkg.2C_synaptic..."> apt</a> per especificar els repositoris de paquets. Aquí el que hem de posar són els repositoris dels quals volem fer un mirall. En l'exemple hem fet un mirall dels repositoris Ubuntu de les versions edgy i dapper que en total ocupara uns 48G d'espai en disc.</p> <div style="float:right;margin-left:5px;" class="editsection">[<a title="Apt-mirror" href="http://10.0.2.2/mediawiki/index.php?title=Apt-mirror&action=edit&section=5">edit</a>]</div> <p><a></a></p> <p>

Execució

Com a superusuari cal executar:

su - apt-mirror -c apt-mirror

Un cop acabada la instal·lació podem alliberar una mica d'espai en disc executant:

/bin/bash /var/spool/apt-mirror/var/clean.sh

Configuració del servidor web

La forma més senzilla per tal d'accedir al nostre repositori mirall via web és crear un enllaç simbòlic:

ln -s /var/spool/apt-mirror/mirror/ch.archive.ubuntu.com/ubuntu /var/www/ubuntu

Configuració de cron

Apt-mirror esta preparat per ser executat periòdicament mitjançant cron. Només cal descomentar una línia del fitxer /etc/cron.d/apt-mirror per tal que quedi de la següent manera:

#
# Regular cron jobs for the apt-mirror package
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

De tal manera que l'actualització del nostre mirall s'executi cada dia a les 4 de la nit.

Configuració dels clients

Als client només es necessari modificar el fitxer /etc/apt/souces.list de tal manera que el repositori sigui el nostre mirall en local. Si suposem que la nostra màquina local on esta el mirall té la IP 192.168.0.10 :

$ cat /etc/apt/sources.list
#
# deb cdrom:Ubuntu-Server 6.10 _Edgy Eft_ - Release i386 (20061025.1)/ edgy main restricted


deb http://192.168.0.10/ubuntu/ edgy main restricted
deb-src http://192.168.0.10/ubuntu/ edgy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://192.168.0.10/ubuntu/ edgy-updates main restricted
deb-src http://192.168.0.10/ubuntu/ edgy-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://192.168.0.10/ubuntu/ edgy universe multiverse
deb-src http://192.168.0.10/ubuntu/ edgy universe multiverse

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://192.168.0.10/ubuntu edgy-security main restricted
deb-src http://192.168.0.10/ubuntu edgy-security main restricted
deb http://192.168.0.10/ubuntu edgy-security universe multiverse
deb-src http://192.168.0.10/ubuntu edgy-security universe multiverse

Fitxers de log

Al fitxer de configuració /etc/apt/mirror.list tenim una opció:

set nthreads     20

Que determina el nombre de processos que s'executen per tal d'actualitzar el mirror. Cadascun d'aquest processos és un una comanda wget tal i com podem veure si executem:

$ ps aux
110 32633 1.0 0.1 3964 1472 pts/0 S+ 17:21 0:00 wget -t 0 -r -N -l inf -o /var/spool/apt-mirror/var/archive-log.1 -i /var/spool/apt-mirror/var/archive-urls.1
110 32639 1.0 0.1 3964 1472 pts/0 S+ 17:21 0:00 wget -t 0 -r -N -l inf -o /var/spool/apt-mirror/var/archive-log.7 -i /var/spool/apt-mirror/var/archive-urls.7
110 32649 1.0 0.1 3960 1520 pts/0 S+ 17:21 0:00 wget -t 0 -r -N -l inf -o /var/spool/apt-mirror/var/archive-log.17 -i /var/spool/apt-mirror/var/archive-urls.17
110 32650 0.0 0.1 3964 1524 pts/0 S+ 17:21 0:00 wget -t 0 -r -N -l inf -o /var/spool/apt-mirror/var/archive-log.18 -i /var/spool/apt-mirror/var/archive-urls.18
110 32651 2.0 0.1 3964 1520 pts/0 S+ 17:21 0:00 wget -t 0 -r -N -l inf -o /var/spool/apt-mirror/var/archive-log.19 -i /var/spool/apt-mirror/var/archive-urls.19

Cada procés crea el seu fitxer de log amb el següent format:

/var/spool/apt-mirror/var/archive-log.1
/var/spool/apt-mirror/var/archive-log.2
/var/spool/apt-mirror/var/archive-log.3
.....
.....
/var/spool/apt-mirror/var/archive-log.20

que podem consultar a posteriori (o durant la actualització) per saber el temps que triga, si hi ha algun error, etc. Un exemple

cat /var/spool/apt-mirror/var/archive-log.1
17:21:32 http://ch.archive.ubuntu.com/ubuntu/pool/main/libo/liboobs/liboobs-1-2_0.6.0-0ubuntu2_amd64.deb
=> `ch.archive.ubuntu.com/ubuntu/pool/main/libo/liboobs/liboobs-1-2_0.6.0-0ubuntu2_amd64.deb'
Resolving ch.archive.ubuntu.com... 130.59.10.34
Connecting to ch.archive.ubuntu.com|130.59.10.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 787 text/html
Last-modified header missing -- time-stamps turned off.
17:21:33 http://ch.archive.ubuntu.com/ubuntu/pool/main/libo/liboobs/liboobs-1-2_0.6.0-0ubuntu2_amd64.deb
=> `ch.archive.ubuntu.com/ubuntu/pool/main/libo/liboobs/liboobs-1-2_0.6.0-0ubuntu2_amd64.deb'
Connecting to ch.archive.ubuntu.com|130.59.10.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 787 text/html

0K 100% 107.22 MB/s
17:21:34 (107.22 MB/s) - `ch.archive.ubuntu.com/ubuntu/pool/main/libo/liboobs/liboobs-1-2_0.6.0-0ubuntu2_amd64.deb' saved 787/787


FINISHED 17:21:34
Downloaded: 787 bytes in 1 files

Troubleshooting

Utilitzar altres arquitectures. AMD64

Seguint els passos d'aquest tutorial tingueu en compte que el mirror nomes es farà de l'arquitectura que utilitzi el mirror. Si per exemple el mirror utilitza l'arquitectura de i386 de 32 bits, aleshores un client de 64 bits no trobarà els paquets al repositori.

Al fitxer /etc/apt/mirror.list hi ha una línia:

set defaultarch  

Que indica quina és l'arquitectura de la que es farà un mirror. Si volem que el mirror inclogui altres arquitectures heu d'afegir les següents línies:

deb-amd64 http://ch.archive.ubuntu.com/ubuntu edgy main restricted universe multiverse
deb-amd64 http://ch.archive.ubuntu.com/ubuntu edgy-security main restricted universe multiverse

Recursos

Apt-mirror Perfect setup

History

Advanced
Information Version
Xavier de Pedro 5
View
Xavier de Pedro 4
View
Xavier de Pedro 3
View
Xavier de Pedro 2
View
Xavier de Pedro 1
View