Usare apt-cacher per creare una cache dei pacchetti usabile in una LAN: differenze tra le versioni
(ritocchi formattazione) |
m (rimosso link a guida obsoleta) |
||
(23 versioni intermedie di 11 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
< | {{Versioni compatibili|Squeeze|Wheezy}} | ||
{| | == Introduzione == | ||
| | Apt-cacher è un programma che ha lo scopo di creare una cache di [[pacchetto|pacchetti deb]] su un server, per poi renderli disponibili a tutte le macchine presenti sulla LAN. In questo modo è possibile limitare la banda utilizzata in uscita e velocizzare i tempi di installazione. | ||
A differenza di <code>apt-proxy</code>, ora obsoleto e non più supportato, <code>apt-cacher</code> ha una struttura completamente piatta, per cui i pacchetti della cache sono conservati in una unica directory anche se provengono da [[repository]] diversi; questa soluzione ne rende l'utilizzo più semplice e immediato. | |||
==Installazione== | |||
Per installare apt-cache è sufficiente digitare sul server che dovrà contenere la cache | |||
<pre> | |||
| | # apt-get install apt-cacher | ||
| | </pre> | ||
| | {{Box|NOTE| Se si hanno problemi con '''apt-cacher''' provare la versione più aggiornata '''apt-cacher-ng'''.}} | ||
==Configurazione== | |||
Per configurare apt-cacher è necessario: | |||
1) modificare il file <code>/etc/default/apt-cacher</code> ponendo ad <code>1</code> il valore di <code>AUTOSTART</code>. In questo modo apt-cacher si avvierà automaticamente ad ogni sessione. Nel caso vogliate avviare/fermare apt-cacher manualmente basterà usare il comando: | |||
<pre> | |||
# /etc/init.d/apt-cacher {start|stop|restart|force-reload} | |||
</pre> | |||
2) modificare il file <code>/etc/apt-cacher/apt-cacher.conf | |||
</code> che contiene tutte le opzioni configurabili. | |||
Riportiamo il file di configurazione originale per completezza | |||
<pre> | |||
################################################################# | |||
# This is the config file for apt-cacher. On most Debian systems | |||
# you can safely leave the defaults alone. | |||
################################################################# | |||
# cache_dir is used to set the location of the local cache. This can | |||
# become quite large, so make sure it is somewhere with plenty of space. | |||
cache_dir=/var/cache/apt-cacher | |||
# The email address of the administrator is displayed in the info page | |||
# and traffic reports. | |||
admin_email=root@localhost | |||
# For the daemon startup settings please edit the file /etc/default/apt-cacher. | |||
# Daemon port setting, only useful in stand-alone mode. You need to run the | |||
# daemon as root to use privileged ports (<1024). | |||
daemon_port=3142 | |||
# optional settings, user and group to run the daemon as. Make sure they have | |||
# sufficient permissions on the cache and log directories. Comment the settings | |||
# to run apt-cacher as the native user. | |||
group=www-data | |||
user=www-data | |||
# optional setting, binds the listening daemon to one specified IP. Use IP | |||
# ranges for more advanced configuration, see below. | |||
# daemon_addr=localhost | |||
# If your apt-cacher machine is directly exposed to the Internet and you are | |||
# worried about unauthorised machines fetching packages through it, you can | |||
# specify a list of IPv4 addresses which are allowed to use it and another | |||
# list of IPv4 addresses which aren't. | |||
# Localhost (127.0.0.1) is always allowed. Other addresses must be matched | |||
# by allowed_hosts and not by denied_hosts to be permitted to use the cache. | |||
# Setting allowed_hosts to "*" means "allow all". | |||
# Otherwise the format is a comma-separated list containing addresses, | |||
# optionally with masks (like 10.0.0.0/22), or ranges of addresses (two | |||
# addresses separated by a hyphen, no masks, like '192.168.0.3-192.168.0.56'). | |||
allowed_hosts=* | |||
denied_hosts= | |||
# And similiarly for IPv6 with allowed_hosts_6 and denied_hosts_6. | |||
# Note that IPv4-mapped IPv6 addresses (::ffff:w.x.y.z) are truncated to | |||
# w.x.y.z and are handled as IPv4. | |||
allowed_hosts_6=fec0::/16 | |||
denied_hosts_6= | |||
# This thing can be done by Apache but is much simplier here - limit access to | |||
# Debian mirrors based on server names in the URLs | |||
#allowed_locations=ftp.uni-kl.de,ftp.nerim.net,debian.tu-bs.de | |||
# Apt-cacher can generate usage reports every 24 hours if you set this | |||
# directive to 1. You can view the reports in a web browser by pointing | |||
# to your cache machine with '/apt-cacher/report' on the end, like this: | |||
# http://yourcache.example.com/apt-cacher/report | |||
# Generating reports is very fast even with many thousands of logfile | |||
# lines, so you can safely turn this on without creating much | |||
# additional system load. | |||
generate_reports=1 | |||
# Apt-cacher can clean up its cache directory every 24 hours if you set | |||
# this directive to 1. Cleaning the cache can take some time to run | |||
# (generally in the order of a few minutes) and removes all package | |||
# files that are not mentioned in any existing 'Packages' lists. This | |||
# has the effect of deleting packages that have been superseded by an | |||
# updated 'Packages' list. | |||
clean_cache=1 | |||
# The directory to use for apt-cacher access and error logs. | |||
# The access log records every request in the format: | |||
# date-time|client ip address|HIT/MISS/EXPIRED|object size|object name | |||
# The error log is slightly more free-form, and is also used for debug | |||
# messages if debug mode is turned on. | |||
# Note that the old 'logfile' and 'errorfile' directives are | |||
# deprecated: if you set them explicitly they will be honoured, but it's | |||
# better to just get rid of them from old config files. | |||
logdir=/var/log/apt-cacher | |||
# apt-cacher can use different methods to decide whether package lists need to | |||
# be updated, | |||
# A) looking at the age of the cached files | |||
# B) getting HTTP header from server and comparing that with cached data. This | |||
# method is more reliable and avoids desynchronisation of data and index files | |||
# but needs to transfer few bytes from the server every time somebody requests | |||
# the files ("apt-get update") | |||
# Set the following value to the maximum age (in hours) for method A or to 0 | |||
# for method B | |||
expire_hours=0 | |||
# Apt-cacher can pass all its requests to an external http proxy like | |||
# Squid, which could be very useful if you are using an ISP that blocks | |||
# port 80 and requires all web traffic to go through its proxy. The | |||
# format is 'hostname:port', eg: 'proxy.example.com:8080'. | |||
http_proxy=proxy.example.com:8080 | |||
# Use of an external proxy can be turned on or off with this flag. | |||
# Value should be either 0 (off) or 1 (on). | |||
use_proxy=0 | |||
# External http proxy sometimes need authentication to get full access. The | |||
# format is 'username:password'. | |||
http_proxy_auth=proxyuser:proxypass | |||
# Use of external proxy authentication can be turned on or off with this flag. | |||
# Value should be either 0 (off) or 1 (on). | |||
use_proxy_auth=0 | |||
# Rate limiting sets the maximum bandwidth in bytes per second to use | |||
# for fetching packages. Syntax is fully defined in 'man wget'. | |||
# Use 'k' or 'm' to use kilobits or megabits / second: eg, 'limit=25k'. | |||
# Use 0 or a negative value for no rate limiting. | |||
limit=0 | |||
# Debug mode makes apt-cacher spew a lot of extra debug junk to the | |||
# error log (whose location is defined with the 'logdir' directive). | |||
# Leave this off unless you need it, or your error log will get very | |||
# big. Acceptable values are 0 or 1. | |||
debug=0 | |||
# Adapt the line in the usage info web page to match your server configuration | |||
# example_sources_line=deb http://<b>my.cacher.server:3142/</b>ftp.au.debian.org/debian unstable main contrib non-free | |||
# Print a 410 (Gone) HTTP message with the specified text when accessed via | |||
# CGI. Useful to tell users to adapt their sources.list files when the | |||
# apt-cacher server is beeing relocated (via apt-get's error messages while | |||
# running "update") | |||
#cgi_advise_to_use = Please use http://cacheserver:3142/ as apt-cacher access URL | |||
#cgi_advise_to_use = Server relocated. To change sources.list, run perl -pe "s,/apt-cacher\??,:3142," -i /etc/apt/sources.list | |||
# Server mapping - this allows to hide real server names behind virtual paths | |||
# that appear in the access URL. This method is known from apt-proxy. This is | |||
# also the only method to use FTP access to the target hosts. The syntax is simple, the part of the beginning to replace, followed by a list | |||
#of mirror urls, all space separated. Multiple profile are separated by semicolons | |||
# path_map = debian ftp.uni-kl.de/pub/linux/debian ftp2.de.debian.org/debian ; ubuntu archive.ubuntu.com/ubuntu ; | |||
#security security.debian.org/debian-security ftp2.de.debian.org/debian-security | |||
# Note that you need to specify all target servers in the allowed_locations | |||
# options if you make use of it. Also note that the paths should not overlap | |||
# each other. FTP access method not supported yet, maybe in the future. | |||
</pre> | |||
Le opzioni più importanti sono: | |||
# <code>cache_dir</code> che determina la directory in cui verrà salvata la cache; | |||
# <code>allowed_hosts</code> che specifica uno o più indirizzi a cui limitare l'accesso alla cache. Volendo per esempio autorizzare tutti gli indirizzi della propria LAN basterebbe specificare <code>allowed_hosts=192.168.1.0/24</code> (posto naturalmente che il formato indirizzi della propria LAN sia 192.168.1.X). | |||
# <code>daemon_port</code> che specifica la porta sulla quale ascolta apt-cacher. | |||
== Client == | |||
Non è necessario installare apt-cacher sui client. Per accedere alla cache potrete: | |||
'''Metodo 1''' (più veloce) | |||
modificare il file <code>/etc/apt/apt.conf</code> inserendo una riga da del tipo: | |||
<pre>Acquire::http::Proxy "http://server_con_cache:porta/"; </pre> | |||
Chiariamo il concetto con un esempio. <br> | |||
Supponiamo che il server abbia [[hostname]] "computer" e apt-cacher ascolti sulla porta 3142 (quella di default). | |||
La nuova riga da inserire per utilizzare la cache sarà: | |||
<pre>Acquire::http::Proxy "http://computer:3142/";</pre> | |||
'''Metodo 2''' | |||
dovrete solo modificare il file <code>/etc/apt/sources.list</code> inserendo una riga da del tipo: | |||
<pre> | |||
deb http://server_con_cache:porta/repository_da_utilizzare/debian [flavour] [sezioni] | |||
</pre> | |||
Chiariamo il concetto con un esempio. <br> | |||
Supponiamo che il server abbia hostname "computer" e apt-cacher ascolti sulla porta 3142 (quella di default). Supponiamo poi che il repository utilizzato sia: | |||
<pre>deb http://ftp.it.debian.org/debian unstable main contrib non-free</pre> | |||
La nuova riga da inserire per utilizzare la cache sarà: | |||
<pre>deb http://computer:3142/ftp.it.debian.org/debian unstable main contrib non-free</pre> | |||
Infine, quale che sia il metodo scelto, basterà salvare e lanciare un: | |||
<pre># apt-get update</pre> | |||
per cominciare ad utilizzare la cache. | |||
Importante notare che tutte le righe dovranno presentare la dicitura "deb http" e non "deb ftp". | |||
==Importare Pacchetti== | |||
A questo punto siamo pronti per usare apt-cacher. Se però si hanno già a disposizione tanti pacchetti installati sul server e presenti nella directory<code>/var/cache/apt/archives</code> potreste volerli importare nella cache. Niente di più semplice: copiate tutti i pacchetti nella directory<code>/var/cache/apt-cacher/import</code>e poi lanciate il comando: | |||
<pre> | |||
# /usr/share/apt-cacher/apt-cacher-import.pl | |||
</pre> | |||
che mette a disposizione tutti i pacchetti importati nella cache. | |||
Non resta che augurare happy caching! | |||
==Nota== | |||
In caso di installazione su un server di rete a cui accedono altre installazioni, è utile ricordare che solo a partire dalla versione 1.6.10 di apt-cacher sono supportati i pacchetti per codice sorgente in formato "3.0 (quilt)" e "3.0 (native)". Tali formati sono stati introdotti a partire dal rilascio della versione 6.0 di Debian (nome in codice "Squeeze"). | |||
== Errori == | |||
=== 503 OUT_OF_DISK_SPACE === | |||
Quest'errore potrebbe comparire quando si esegue <code>aptitude upgrade</code> e significa che la partizione dove vengono memorizzati i pacchetti è piena. Si tratta quindi di liberare spazio su disco, per esempio digitando <code>aptitude autoclean</code> (e se non bastasse <code>aptitude clean</code>); è comunque probabile che col tempo il problema si ripresenti, valutare quindi di ampliare la partizione per la memorizzazione dei pacchetti o di definirne addirittura una differente. | |||
{{Autori | |||
|Autore=[[Utente:giorsat|giorsat]] | |||
|Estesa_da= | |||
:[[Utente:Sal|Sal]] | |||
|Verificata_da= | |||
:[[Utente:Wtf|Wtf]] 16:31, 24 ago 2011 (CEST) | |||
:[[Utente:porkyhttp|porkyhttp]] 16:58, 06 mag 2012 (CEST) | |||
|Numero_revisori=2 | |||
}} | |||
[[Categoria:Condivisione risorse]][[Categoria:Apt]] | |||
[[Categoria:Repository]] |
Versione attuale delle 11:05, 8 mag 2016
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 6 "squeeze" Debian 7 "wheezy" |
Introduzione
Apt-cacher è un programma che ha lo scopo di creare una cache di pacchetti deb su un server, per poi renderli disponibili a tutte le macchine presenti sulla LAN. In questo modo è possibile limitare la banda utilizzata in uscita e velocizzare i tempi di installazione.
A differenza di apt-proxy
, ora obsoleto e non più supportato, apt-cacher
ha una struttura completamente piatta, per cui i pacchetti della cache sono conservati in una unica directory anche se provengono da repository diversi; questa soluzione ne rende l'utilizzo più semplice e immediato.
Installazione
Per installare apt-cache è sufficiente digitare sul server che dovrà contenere la cache
# apt-get install apt-cacher
NOTE Se si hanno problemi con apt-cacher provare la versione più aggiornata apt-cacher-ng. |
Configurazione
Per configurare apt-cacher è necessario:
1) modificare il file /etc/default/apt-cacher
ponendo ad 1
il valore di AUTOSTART
. In questo modo apt-cacher si avvierà automaticamente ad ogni sessione. Nel caso vogliate avviare/fermare apt-cacher manualmente basterà usare il comando:
# /etc/init.d/apt-cacher {start|stop|restart|force-reload}
2) modificare il file /etc/apt-cacher/apt-cacher.conf
che contiene tutte le opzioni configurabili.
Riportiamo il file di configurazione originale per completezza
################################################################# # This is the config file for apt-cacher. On most Debian systems # you can safely leave the defaults alone. ################################################################# # cache_dir is used to set the location of the local cache. This can # become quite large, so make sure it is somewhere with plenty of space. cache_dir=/var/cache/apt-cacher # The email address of the administrator is displayed in the info page # and traffic reports. admin_email=root@localhost # For the daemon startup settings please edit the file /etc/default/apt-cacher. # Daemon port setting, only useful in stand-alone mode. You need to run the # daemon as root to use privileged ports (<1024). daemon_port=3142 # optional settings, user and group to run the daemon as. Make sure they have # sufficient permissions on the cache and log directories. Comment the settings # to run apt-cacher as the native user. group=www-data user=www-data # optional setting, binds the listening daemon to one specified IP. Use IP # ranges for more advanced configuration, see below. # daemon_addr=localhost # If your apt-cacher machine is directly exposed to the Internet and you are # worried about unauthorised machines fetching packages through it, you can # specify a list of IPv4 addresses which are allowed to use it and another # list of IPv4 addresses which aren't. # Localhost (127.0.0.1) is always allowed. Other addresses must be matched # by allowed_hosts and not by denied_hosts to be permitted to use the cache. # Setting allowed_hosts to "*" means "allow all". # Otherwise the format is a comma-separated list containing addresses, # optionally with masks (like 10.0.0.0/22), or ranges of addresses (two # addresses separated by a hyphen, no masks, like '192.168.0.3-192.168.0.56'). allowed_hosts=* denied_hosts= # And similiarly for IPv6 with allowed_hosts_6 and denied_hosts_6. # Note that IPv4-mapped IPv6 addresses (::ffff:w.x.y.z) are truncated to # w.x.y.z and are handled as IPv4. allowed_hosts_6=fec0::/16 denied_hosts_6= # This thing can be done by Apache but is much simplier here - limit access to # Debian mirrors based on server names in the URLs #allowed_locations=ftp.uni-kl.de,ftp.nerim.net,debian.tu-bs.de # Apt-cacher can generate usage reports every 24 hours if you set this # directive to 1. You can view the reports in a web browser by pointing # to your cache machine with '/apt-cacher/report' on the end, like this: # http://yourcache.example.com/apt-cacher/report # Generating reports is very fast even with many thousands of logfile # lines, so you can safely turn this on without creating much # additional system load. generate_reports=1 # Apt-cacher can clean up its cache directory every 24 hours if you set # this directive to 1. Cleaning the cache can take some time to run # (generally in the order of a few minutes) and removes all package # files that are not mentioned in any existing 'Packages' lists. This # has the effect of deleting packages that have been superseded by an # updated 'Packages' list. clean_cache=1 # The directory to use for apt-cacher access and error logs. # The access log records every request in the format: # date-time|client ip address|HIT/MISS/EXPIRED|object size|object name # The error log is slightly more free-form, and is also used for debug # messages if debug mode is turned on. # Note that the old 'logfile' and 'errorfile' directives are # deprecated: if you set them explicitly they will be honoured, but it's # better to just get rid of them from old config files. logdir=/var/log/apt-cacher # apt-cacher can use different methods to decide whether package lists need to # be updated, # A) looking at the age of the cached files # B) getting HTTP header from server and comparing that with cached data. This # method is more reliable and avoids desynchronisation of data and index files # but needs to transfer few bytes from the server every time somebody requests # the files ("apt-get update") # Set the following value to the maximum age (in hours) for method A or to 0 # for method B expire_hours=0 # Apt-cacher can pass all its requests to an external http proxy like # Squid, which could be very useful if you are using an ISP that blocks # port 80 and requires all web traffic to go through its proxy. The # format is 'hostname:port', eg: 'proxy.example.com:8080'. http_proxy=proxy.example.com:8080 # Use of an external proxy can be turned on or off with this flag. # Value should be either 0 (off) or 1 (on). use_proxy=0 # External http proxy sometimes need authentication to get full access. The # format is 'username:password'. http_proxy_auth=proxyuser:proxypass # Use of external proxy authentication can be turned on or off with this flag. # Value should be either 0 (off) or 1 (on). use_proxy_auth=0 # Rate limiting sets the maximum bandwidth in bytes per second to use # for fetching packages. Syntax is fully defined in 'man wget'. # Use 'k' or 'm' to use kilobits or megabits / second: eg, 'limit=25k'. # Use 0 or a negative value for no rate limiting. limit=0 # Debug mode makes apt-cacher spew a lot of extra debug junk to the # error log (whose location is defined with the 'logdir' directive). # Leave this off unless you need it, or your error log will get very # big. Acceptable values are 0 or 1. debug=0 # Adapt the line in the usage info web page to match your server configuration # example_sources_line=deb http://<b>my.cacher.server:3142/</b>ftp.au.debian.org/debian unstable main contrib non-free # Print a 410 (Gone) HTTP message with the specified text when accessed via # CGI. Useful to tell users to adapt their sources.list files when the # apt-cacher server is beeing relocated (via apt-get's error messages while # running "update") #cgi_advise_to_use = Please use http://cacheserver:3142/ as apt-cacher access URL #cgi_advise_to_use = Server relocated. To change sources.list, run perl -pe "s,/apt-cacher\??,:3142," -i /etc/apt/sources.list # Server mapping - this allows to hide real server names behind virtual paths # that appear in the access URL. This method is known from apt-proxy. This is # also the only method to use FTP access to the target hosts. The syntax is simple, the part of the beginning to replace, followed by a list #of mirror urls, all space separated. Multiple profile are separated by semicolons # path_map = debian ftp.uni-kl.de/pub/linux/debian ftp2.de.debian.org/debian ; ubuntu archive.ubuntu.com/ubuntu ; #security security.debian.org/debian-security ftp2.de.debian.org/debian-security # Note that you need to specify all target servers in the allowed_locations # options if you make use of it. Also note that the paths should not overlap # each other. FTP access method not supported yet, maybe in the future.
Le opzioni più importanti sono:
cache_dir
che determina la directory in cui verrà salvata la cache;allowed_hosts
che specifica uno o più indirizzi a cui limitare l'accesso alla cache. Volendo per esempio autorizzare tutti gli indirizzi della propria LAN basterebbe specificareallowed_hosts=192.168.1.0/24
(posto naturalmente che il formato indirizzi della propria LAN sia 192.168.1.X).daemon_port
che specifica la porta sulla quale ascolta apt-cacher.
Client
Non è necessario installare apt-cacher sui client. Per accedere alla cache potrete:
Metodo 1 (più veloce)
modificare il file /etc/apt/apt.conf
inserendo una riga da del tipo:
Acquire::http::Proxy "http://server_con_cache:porta/";
Chiariamo il concetto con un esempio.
Supponiamo che il server abbia hostname "computer" e apt-cacher ascolti sulla porta 3142 (quella di default).
La nuova riga da inserire per utilizzare la cache sarà:
Acquire::http::Proxy "http://computer:3142/";
Metodo 2
dovrete solo modificare il file /etc/apt/sources.list
inserendo una riga da del tipo:
deb http://server_con_cache:porta/repository_da_utilizzare/debian [flavour] [sezioni]
Chiariamo il concetto con un esempio.
Supponiamo che il server abbia hostname "computer" e apt-cacher ascolti sulla porta 3142 (quella di default). Supponiamo poi che il repository utilizzato sia:
deb http://ftp.it.debian.org/debian unstable main contrib non-free
La nuova riga da inserire per utilizzare la cache sarà:
deb http://computer:3142/ftp.it.debian.org/debian unstable main contrib non-free
Infine, quale che sia il metodo scelto, basterà salvare e lanciare un:
# apt-get update
per cominciare ad utilizzare la cache.
Importante notare che tutte le righe dovranno presentare la dicitura "deb http" e non "deb ftp".
Importare Pacchetti
A questo punto siamo pronti per usare apt-cacher. Se però si hanno già a disposizione tanti pacchetti installati sul server e presenti nella directory/var/cache/apt/archives
potreste volerli importare nella cache. Niente di più semplice: copiate tutti i pacchetti nella directory/var/cache/apt-cacher/import
e poi lanciate il comando:
# /usr/share/apt-cacher/apt-cacher-import.pl
che mette a disposizione tutti i pacchetti importati nella cache.
Non resta che augurare happy caching!
Nota
In caso di installazione su un server di rete a cui accedono altre installazioni, è utile ricordare che solo a partire dalla versione 1.6.10 di apt-cacher sono supportati i pacchetti per codice sorgente in formato "3.0 (quilt)" e "3.0 (native)". Tali formati sono stati introdotti a partire dal rilascio della versione 6.0 di Debian (nome in codice "Squeeze").
Errori
503 OUT_OF_DISK_SPACE
Quest'errore potrebbe comparire quando si esegue aptitude upgrade
e significa che la partizione dove vengono memorizzati i pacchetti è piena. Si tratta quindi di liberare spazio su disco, per esempio digitando aptitude autoclean
(e se non bastasse aptitude clean
); è comunque probabile che col tempo il problema si ripresenti, valutare quindi di ampliare la partizione per la memorizzazione dei pacchetti o di definirne addirittura una differente.
Guida scritta da: giorsat | Debianized 60% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |