Apt-mirror: differenze tra le versioni

Da PNLUG.
(apt-mirror)
(Install Nginx)
 
(32 versioni intermedie di uno stesso utente non sono mostrate)
Riga 9: Riga 9:
 
L'idea è di avere spazio disco, copiare in locale tutti i pacchetti della distro per poterli utilizzare off line.
 
L'idea è di avere spazio disco, copiare in locale tutti i pacchetti della distro per poterli utilizzare off line.
  
==apt-mirror==
+
=Pachetto apt-mirror=
  
 
Lo strumento [https://apt-mirror.github.io/ apt-mirror] è sviluppato appositamente per questo tipo d'esigenza : clonare un repository.
 
Lo strumento [https://apt-mirror.github.io/ apt-mirror] è sviluppato appositamente per questo tipo d'esigenza : clonare un repository.
Un interessante articolo ne propone l'utilizzo assieme ad un [https://en.wikipedia.org/wiki/File_Transfer_Protocol FTP] Server  
+
Lo si trova nei pacchetti debian (ad oggi la stable è jessie e lo si trova nella versione [https://packages.debian.org/stable/apt-mirror apt-mirror (0.5.1-1)]).<br>
 +
Un interessante [http://www.tecmint.com/setup-local-repositories-in-ubuntu/ articolo] ne propone l'utilizzo assieme ad un [https://en.wikipedia.org/wiki/File_Transfer_Protocol FTP] Server,vedremo in una seconda fase come utilizzare tale server.
  
=Installazione
+
=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
 
  # apt-get install apt-mirror
  
=Configurazione
+
=Configurazione=
  
 
  # nano /etc/apt/mirror.list
 
  # nano /etc/apt/mirror.list
  
=Avvio apt-mirror
+
== File esempio ==
 +
 +
Per costruire un mirror Ubuntu e Debian ho utilizzato il seguente esempio :
 +
 
 +
<pre>
 +
############# 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
 +
 
 +
</pre>
 +
 
 +
===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".
 +
 
 +
<pre>
 +
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
 +
 
 +
 
 +
</pre>
 +
 
 +
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.<br/>
 +
Anche [https://packages.debian.org/jessie/proftpd-basic proftpd-basic] è disponibile in Jessie nella versione 1.3.5.<br/>
 +
 
 +
== 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
 +
 
 +
<pre>
 +
<Anonymous ~ftp>
 +
  User                    ftp
 +
  Group                nogroup
 +
  UserAlias        anonymous ftp
 +
  RequireValidShell        off
 +
#  MaxClients                  10
 +
  <Directory *>
 +
    <Limit WRITE>
 +
      DenyAll
 +
    </Limit>
 +
  </Directory>
 +
</Anonymous>
 +
</pre>
 +
 
 +
=== 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 . <br>
 +
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/
 +
 
 +
===== rc.local =====
 +
 
 +
Come suggerito dall'articolo è possibile montare automaticamente modificanto il file /etc/rc.local
 +
 
 +
  # nano /etc/rc.local
 +
 
 +
aggiungendo prima di exit 0
 +
 
 +
  sleep 5
 +
  sudo mount --bind  /opt/apt-mirror/mirror/ftp.us.debian.org/ /srv/ftp/
 +
 
 +
=WebServer=
 +
Alternativo al server ftp si può utilizzare un web server.
 +
 
 +
==Nginx==
 +
 
 +
===Install Nginx===
 +
 
 +
#apt-get install nginx
 +
 
 +
====Testa l'installazione====
 +
 
 +
Aprite il vostro browser su http://your_server_ip
 +
 
 +
oppure da terminale
 +
 
 +
  $curl your_server_ip
 +
 
 +
qualcosa simile a questo dovrebbe uscire :
 +
 
 +
<pre>
 +
<!DOCTYPE html>
 +
<html>
 +
<head>
 +
<title>Welcome to nginx on Debian!</title>
 +
<style>
 +
    body {
 +
        width: 35em;
 +
        margin: 0 auto;
 +
        font-family: Tahoma, Verdana, Arial, sans-serif;
 +
    }
 +
</style>
 +
</head>
 +
</pre>
 +
 
 +
 
 +
==== Configurazione  (da testare) ====
 +
 
 +
 
 +
2. Remove the default configuration file
 +
1
 +
 +
rm /etc/nginx/sites-enabled/default
 +
 
 +
3. Create a new configuration by creating /etc/nginx/sites-available/ubuntu-mirror with the following content:
 +
1
 +
2
 +
3
 +
4
 +
5
 +
6
 +
7
 +
8
 +
9
 +
10
 +
11
 +
12
 +
13
 +
14
 +
15
 +
16
 +
17
 +
 +
server {
 +
        listen  80 default;
 +
        server_name susrtumi1.health.local susrtumi1;
 +
        gzip off;
 +
 +
        access_log  /var/log/nginx/ubuntu-mirror-access.log;
 +
 +
        location /ubuntu {
 +
                alias  /mirror/www/at.archive.ubuntu.com;
 +
                autoindex on;
 +
        }
 +
 +
        location /ubuntu-security {
 +
                alias /mirror/www/security.ubuntu.com;
 +
                autoindex on;
 +
        }
 +
}
 +
 
 +
4. Relink the new configuration file to be used by nginx:
 +
1
 +
2
 +
 +
cd /etc/nginx/sites-enabled
 +
ln -s ../sites-available/ubuntu-mirror
 +
 
 +
5. Set the correct permissions:
 +
1
 +
2
 +
 +
chown -R apt-mirror:www-data /mirror
 +
chmod -R 775 /mirror
 +
 
 +
6. Restart nginx
 +
1
 +
 +
/etc/init.d/nginx restar
 +
 
 +
http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror
 +
http://www.plankandwhittle.com/a-debianor-ubuntu-mirror-to-call-your-own/
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==apache==
 +
 
 +
http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html
 +
 
 +
===Configurazione===
 +
 
 +
Fermiamo il servizio per poterlo configurare.
 +
 
 +
  #systemctl stop nginx.service
 +
 
 +
=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 :
 +
 
 +
[http://www.proftpd.org/ Sito ufficiale del progetto]<br>
 +
[http://www.proftpd.org/docs/configs/anonymous.conf esempio di configurazione]
  
==Link==
+
=Link=
 
https://apt-mirror.github.io/<br/>
 
https://apt-mirror.github.io/<br/>
 
http://www.tecmint.com/setup-local-repositories-in-ubuntu/ <br/>
 
http://www.tecmint.com/setup-local-repositories-in-ubuntu/ <br/>
Riga 30: Riga 334:
 
https://www.howtoforge.com/local_debian_ubuntu_mirror<br/>
 
https://www.howtoforge.com/local_debian_ubuntu_mirror<br/>
 
https://www.packtpub.com/books/content/create-local-ubuntu-repository-using-apt-mirror-and-apt-cacher<br/>
 
https://www.packtpub.com/books/content/create-local-ubuntu-repository-using-apt-mirror-and-apt-cacher<br/>
<br/>
+
http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror<br/>
 +
http://www.pendrivelinux.com/how-to-set-up-your-own-debian-linux-mirror/<br/>
 +
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-8<br/>
 +
https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units<br/>
 +
http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html<br/>
 
<br/>
 
<br/>
 
<br/>
 
<br/>
 
<br/>
 
<br/>

Versione attuale delle 16:18, 7 apr 2016

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/
rc.local

Come suggerito dall'articolo è possibile montare automaticamente modificanto il file /etc/rc.local

 # nano /etc/rc.local

aggiungendo prima di exit 0

 sleep 5
 sudo mount --bind  /opt/apt-mirror/mirror/ftp.us.debian.org/ /srv/ftp/

WebServer

Alternativo al server ftp si può utilizzare un web server.

Nginx

Install Nginx

#apt-get install nginx

Testa l'installazione

Aprite il vostro browser su http://your_server_ip

oppure da terminale

  $curl your_server_ip

qualcosa simile a questo dovrebbe uscire :

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx on Debian!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>


Configurazione (da testare)

2. Remove the default configuration file 1

rm /etc/nginx/sites-enabled/default

3. Create a new configuration by creating /etc/nginx/sites-available/ubuntu-mirror with the following content: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

server {

       listen   80 default;
       server_name susrtumi1.health.local susrtumi1;
       gzip off;

       access_log  /var/log/nginx/ubuntu-mirror-access.log;

       location /ubuntu {
               alias  /mirror/www/at.archive.ubuntu.com;
               autoindex on;
       }

       location /ubuntu-security {
               alias /mirror/www/security.ubuntu.com;
               autoindex on;
       }

}

4. Relink the new configuration file to be used by nginx: 1 2

cd /etc/nginx/sites-enabled ln -s ../sites-available/ubuntu-mirror

5. Set the correct permissions: 1 2

chown -R apt-mirror:www-data /mirror chmod -R 775 /mirror

6. Restart nginx 1

/etc/init.d/nginx restar

http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror http://www.plankandwhittle.com/a-debianor-ubuntu-mirror-to-call-your-own/



apache

http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html

Configurazione

Fermiamo il servizio per poterlo configurare.

 #systemctl stop nginx.service

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/
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-8
https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units
http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html