3 581
contributi
mNessun oggetto della modifica |
mNessun oggetto della modifica |
||
(25 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Old}} | |||
== Introduzione == | |||
In questo tutorial analizzeremo [http://apt-proxy.sourceforge.net/ apt-proxy]. | |||
= | Apt-proxy è un comodo strumento per mantenere una cache dei pacchetti Debian già scaricati, riuscendo così a velocizzare il download da parte di altri client connessi alla stessa LAN ed a risparmiare un po' di banda, soprattutto nei casi in cui questa è a pagamento. =) | ||
== Installazione == | |||
Per installarlo è sufficiente dare il seguente comando: | |||
<pre> | |||
# apt-get install apt-proxy | |||
</pre> | |||
{{Box|NOTA|In questo periodo sta avvenendo la transizione tra la versione 1 e la versione 2. In questo howto verranno analizzate entrambe le versioni, e verrà illustrato anche il passaggio dalla v1 alla v2.}} | |||
== Configurazione == | |||
=== Versione 1 === | |||
< | La configurazione è molto semplice; tutti i parametri sono contenuti in un file: | ||
<code>/etc/apt-proxy/apt-proxy.conf</code>. | |||
Ne riporto una versione semplificata, in cui le varie variabili di | |||
configurazione sono commentate: | |||
<pre> | <pre> | ||
------------------------------------------------------- | |||
# imposta la directory in cui salvare al cache | |||
APT_PROXY_CACHE=/var/cache/apt-proxy | |||
# Esempio per il repository ufficiale Debian | |||
# Debian main | |||
# | |||
# Qui di seguito sono riportate le righe da inserire in un ipotetico | |||
sources.list | |||
# ovviamente sostituendo APTPROXY con l'indirizzo del server che funge da proxy. | |||
#deb http://APTPROXY:9999/debian stable main contrib non-free | |||
#deb http://APTPROXY:9999/debian woody main contrib non-free | |||
#deb http://APTPROXY:9999/debian sarge main contrib non-free | |||
#deb http://APTPROXY:9999/debian sid main contrib non-free | |||
#deb http://APTPROXY:9999/debian project/experimental/main/binary-$(ARCH)/ | |||
# Qui aggiungiamo un backend, indicando la directory in cui verrà creata la | |||
cache | |||
# La prima riga contiene la dichiarazione del backend, la seconda indica un | |||
repository | |||
# locale (quello della cache), dalla seconda alla penultima sono indicati i vari | |||
mirror | |||
# ufficiali, l'ultima indica un collegamento `alternativo` a http, cioè via | |||
ftp... | |||
# Da notare l'importanza delle backslash a fine riga (ultima riga esclusa) | |||
add_backend /debian/ | |||
$APT_PROXY_CACHE/debian/ | |||
http://ftp2.it.debian.org/debian/ | |||
# http://ftp.de.debian.org/debian/ | |||
# http://ftp.uk.debian.org/debian/ | |||
# +ftp.us.debian.org::debian/ | |||
############################## OTHER VARS ################################## | |||
# Qui sono presenti le variabili di configurazione | |||
# | |||
# Dopo quanti giorni devono essere eliminati i pacchetti vecchi; | |||
# Se impostata a 0, attiva l'eliminazione immediata dei vecchi pacchetti | |||
(sconsigliata) | |||
CLEANUP_DAYS=14 | |||
= | # Dopo quanti giorni verranno cancellati i pacchetti considerati vecchi, | ||
raramente utilizzati | |||
# Commentarla per disabilitare questa funzione. | |||
CLEAN_SWEEP=60 | |||
# Il numero massimo di versioni di un pacchetto da conservare in memoria. | |||
un | # Commentarla per disabilitare questa funzione. | ||
MAX_VERSIONS=2 | |||
# Frequenza massima, in minuti, degli aggiornamenti dei pacchetti | |||
# Impostare un valore abbastanza alto per avere delle buone performance. | |||
BACKEND_FREQ=240 | |||
# Quanti secondi devono passare prima che RSYNC vada in TimeOut | |||
RSYNC_TIMEOUT=30 | |||
# Quanti secondi devono passare prima che RSYNC vada in TimeOut | |||
WGET_TIMEOUT=30 | |||
# Consente di impostare il path dell'eseguibile di wget e/o di appendere delle | |||
opzioni all'eseguibile | |||
#WGET=wget | |||
# Consente di impostare il path dell'eseguibile di rsync e/o di appendere delle | |||
opzioni all'eseguibile | |||
#RSYNC=rsync | |||
# Per appoggiarsi ad un proxy per il download dei pacchetti: | |||
#export http_proxy=http://proxy:8080/ | |||
#export ftp_proxy=http://proxy:8080/ | |||
# in caso di necessità, è possibile gestire l'autenticazione: | |||
#export http_proxy=http://user:pass@proxy:8080/ | |||
#export ftp_proxy=http://user:pass@proxy:8080/ | |||
------------------------------------------------------- | |||
</pre> | |||
== | === Versione 2 === | ||
In questo periodo è stata rilasciata la versione 2 di [http://apt-proxy.sourceforge.net/ apt-proxy ]. Le migliorie sono tante, e invito a fare una visitina al sito ufficiale. | |||
Prima di passare all'analisi del nuovo file di configurazione, vorrei sottolineare che, ora, apt-proxy gira come servizio, con relativo script di | |||
avvio/riavvio/stop: <code>/etc/init.d/apt-proxy</code>. Questo vuole dire che, ogni volta che viene modificato il file, conviene riavviare il server apt-proxy. | |||
Analizziamo il file di configurazione di questa nuova versione. Come per il file di configurazione precedente, l'esempio riportato presenta dei commenti per i vari parametri. | |||
<pre> | |||
[DEFAULT] | |||
;; Tutti i valori usati per il tempo sono espressi in secondi, è possibile | |||
;; però indicarli anche in minuti(m), ore(h) o giorni(d), posponendo al numero | |||
;; la lettera distintiva dell'unità di misura. | |||
;; È possibile impostare l'IP al quale risponde il server | |||
;; utile per limitare l'accesso (ad esempio non renderlo accessibile | |||
;; dall'esterno) | |||
;address = 192.168.0.254 | |||
;; Porta a cui il server presta ascolto | |||
port = 9999 | |||
;; Intervallo di refresh per i file di controllo (Packages/Sources/Contents) | |||
;; | |||
;; Età minima di un file prima di aggiornarlo | |||
min_refresh_delay = 1h | |||
;; Vita minima di un file prima che venga aggiornato (NOT YET IMPLEMENTED) | |||
;min_age = 23h | |||
;; Rimuovi il commento da questa direttiva per fare in modo che | |||
;; apt-proxy continui a scaricare anche se il client si disconnette. | |||
;; Utile per connessioni always-on (ADSL...), probabilmente non è una | |||
;; buona idea per connessioni dial-up (modem 56k). | |||
;; complete_clientless_downloads = 1 | |||
;; Debugging settings. | |||
;; for all debug information use this: | |||
;; debug = all:9 | |||
debug = all:4 db:0 | |||
---- [[ | ;; Debugging remote python console | ||
[[ | ;; Do not enable in an untrusted environment | ||
;telnet_port = 9998 | |||
;telnet_user = apt-proxy | |||
;telnet_password = secret | |||
;; Timeout mentre si ricevono dati da un server | |||
timeout = 15 | |||
;; Cache directory di apt-proxy | |||
cache_dir = /var/cache/apt-proxy | |||
;; Usare FTP passivo? (default=on) | |||
;passive_ftp = on | |||
;; Usare un proxy HTTP? | |||
;http_proxy = [username:password@]host:port | |||
;; Limit download rate from backend servers (http and rsync only), in bytes/sec | |||
;bandwidth_limit = 100000 | |||
;;-------------------------------------------------------------- | |||
;; Cache housekeeping | |||
;; Time to perform periodic housekeeping: | |||
;; - delete files that have not been accessed in max_age | |||
;; - scan cache directories and update internal tables | |||
cleanup_freq = 1d | |||
;; Maximum age of files before deletion from the cache (seconds) | |||
max_age = 120d | |||
;; Maximum number of versions of a .deb to keep per distribution | |||
max_versions = 3 | |||
;; Add HTTP backends dynamicaly if not already defined? (default=on) | |||
;dynamic_backends = on | |||
;;--------------------------------------------------------------- | |||
;;--------------------------------------------------------------- | |||
;; Backend servers | |||
;; | |||
;; Disporre ogni server nella sua sezione [section] | |||
;[debian] | |||
;Questo backend è stato commentato, per prevenire problemi durante | |||
;l'importazione dei backend dalla versione 1 | |||
; | |||
;;; The main Debian archive | |||
;;; è possibile sovrascrivere la direttiva `timeout` di default: | |||
;;timeout = 30 | |||
; | |||
;;; Backend server, in ordine di preferenza | |||
;backends = | |||
; http://ftp.us.debian.org/debian | |||
; http://ftp.de.debian.org/debian | |||
; http://ftp2.de.debian.org/debian | |||
; ftp://ftp.uk.debian.org/debian | |||
; | |||
;min_refresh_delay = 1d | |||
; | |||
;[security] | |||
;Questo backend è stato commentato, per prevenire problemi durante | |||
;l'importazione dei backend dalla versione 1 | |||
; | |||
;;; Debian security archive | |||
;backends = | |||
; http://security.debian.org/debian-security | |||
; http://ftp2.de.debian.org/debian-security | |||
; | |||
;min_refresh_delay = 1m | |||
; | |||
;[ubuntu] | |||
;;; Ubuntu archive | |||
;backends = http://archive.ubuntu.com/ubuntu | |||
;min_refresh_delay = 15m | |||
; | |||
;[ubuntu-security] | |||
;;; Ubuntu security updates | |||
;backends = http://security.ubuntu.com/ubuntu | |||
;min_refresh_delay = 1m | |||
;[backports.org] | |||
;; backports.org | |||
;backends = http://backports.org/debian | |||
min_refresh_delay = 1d | |||
;;[blackdown] | |||
;;; Blackdown Java | |||
;;backends = http://ftp.gwdg.de/pub/languages/java/linux/debian | |||
;min_refresh_delay = 1d | |||
;[debian-people] | |||
;; people.debian.org | |||
;backends = http://people.debian.org | |||
;[emdebian] | |||
;; The Emdebian project | |||
;backends = http://emdebian.sourceforge.net/emdebian | |||
;[rsync] | |||
;; Un esempio di utilizzo con un server rsync. Non è raccomandato | |||
;; il suo utilizzo, a meno che non sia l'unico servizio disponibile: | |||
;; rsync è molto efficiente solo nel trasferimento di dati non compressi | |||
;; e carica molto il server. | |||
;backends = rsync://ftp.uk.debian.org/debian | |||
;[gnuab] | |||
;; Debian GNU/Hurd-related tools | |||
;backends = http://ftp.gnuab.org/debian | |||
[debian] | |||
backends = | |||
http://ftp.it.debian.org/debian | |||
[security] | |||
backends = | |||
http://security.debian.org | |||
[blackdown] | |||
backends = | |||
http://ftp.gwdg.de/pub/languages/java/linux/debian | |||
[marillat] | |||
backends = | |||
ftp://ftp.nerim.net/debian-marillat | |||
[jedit] | |||
backends = | |||
http://dl.sourceforge.net/sourceforge/jedit | |||
[mythtv] | |||
backends = | |||
http://dijkstra.csh.rit.edu:8088/~mdz/debian/ | |||
</pre> | |||
Ok, ora abbiamo visto il file di configurazione, che dire: semplicissimo! | |||
Prima di concludere la parte relativa alla configurazione del server, vorrei | |||
mostrare alcuni comandi importanti, utili per la configurazione e l'utilizzo | |||
di apt-proxy: | |||
<code>'''apt-proxy-import'''</code> -- Comando utilissimo durante la prima installazione: consente di importare dei pacchetti Debian già scaricati nella cache di apt-proxy. Utilizzo: | |||
<pre> | |||
# apt-proxy-import /dir/contenente/i/pacchetti | |||
</pre> | |||
In generale, i pacchetti vengono automaticamente scaricati da APT nella directory <code>/var/cache/apt/archives</code>, questo è quindi il percorso da usare più comune. | |||
<code>'''apt-proxy-v1tov2'''</code> -- Comodissima utility che converte il file di configurazione della versione 1 in uno compatibile con la versione 2. Utilizzo: | |||
<pre> | |||
# apt-proxy-v1tov2 [v1_conf [v2_sample_conf]] > v2_conf | |||
</pre> | |||
Di default utilizza <code>/etc/apt-proxy/apt-proxy.conf</code> per <code>v1_conf</code> e <code>/etc/apt-proxy/apt-proxy-v2.conf</code> per <code>v2_sample_conf</code>. | |||
<code>'''/etc/init.d/apt-proxy [start|stop|restart|force-reload]'''</code> -- Script di gestione di apt-proxy: | |||
*<code>start</code>: avvia il server; | |||
*<code>stop</code>: lo arresta; | |||
*<code>restart</code>: lo riavvia; | |||
*<code>force-reload</code>: forza la rilettura del file di configurazione. | |||
== Utilizzo == | |||
Niente di più semplice: basta modificare il proprio <code>/etc/apt/sources.list</code> mettendo come server <code>indirizzo_server:9999</code> | |||
=== Esempio === | |||
Se prima, nel nostro <code>sources.list</code> avevamo una riga del tipo: | |||
<pre> | |||
deb http://ftp2.it.debian.org/debian/ testing main | |||
non-free contrib | |||
</pre> | |||
non ci basterà che seguire questi passi, per configurare il server e i client: | |||
1) inseriamo il backend nel server, se non è già presente: | |||
<pre>[debian] | |||
backends = | |||
http://ftp2.it.debian.org/debian/ | |||
</pre> | |||
2) modifichiamo il <code>sources.list</code> dei client: | |||
<pre> | |||
deb http://indirizzoserver:9999/debian/ testing main non-free contrib | |||
</pre> | |||
3) aggiorniamo apt-proxy | |||
<pre> | |||
# /etc/init.d/apt-proxy force-reload | |||
</pre> | |||
4) aggiorniamo con: | |||
<pre> | |||
# apt-get update | |||
</pre> | |||
Fine! | |||
{{Autori | |||
|Autore=[[User:MaXeR|MaXeR]] | |||
}} |
contributi