1 487
contributi
m (firma) |
m (Modificati i titoli ed aggiunto un box) |
||
Riga 1: | Riga 1: | ||
==Introduzione== | |||
In questo tutorial analizzeremo 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: | |||
/etc/apt-proxy/apt-proxy.conf | |||
Ne riporto una versione semplificata, in cui le varie variabili di | |||
configurazione sono commentate: | |||
<pre> | <pre> | ||
### Debian | ------------------------------------------------------- | ||
deb http://ftp2.it.debian.org/debian/ | # 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 fineriga (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. | ||
# 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> | </pre> | ||
===Versione 2=== | |||
In questo periodo è stata rilasciata la versione 2 di apt-proxy | |||
(http://apt-proxy.sourceforge.net/). | |||
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: /etc/init.d/apt-proxy. 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, riporto una copia del mio file | |||
di configurazione, commentando i vari parametri. | |||
<pre> | <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), postponendo 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 Packages/Sources/Contents | |||
;; | |||
;; Intervallo minimo prima di aggiornare un file | |||
min_refresh_delay = 240 | |||
;; 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 disconnettr | |||
;; Utile per connessioni always-on (ADSL...) | |||
;; complete_clientless_downloads = 1 | |||
;; Debugging settings. | |||
;; for all debug information use this: | |||
;; debug = all:9 | |||
debug = all db:3 | |||
;; 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 = 30 | |||
;; Cache directory di apt-proxy | |||
cache_dir = /var/cache/apt-proxy | |||
;; Usa FTP passivo (default=on) | |||
;passive_ftp = on | |||
;; Usa un proxy apt | |||
;http_proxy = host:port | |||
;; Disable HTTP pipelining within apt-proxy (for test purposes) | |||
;disable_pipelining=1 | |||
;;-------------------------------------------------------------- | |||
;; 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 = 60d | |||
;; Maximum age of files before deletion from the cache (seconds) | |||
max_age = 14d | |||
;; Maximum number of versions of a .deb to keep per distribution | |||
max_versions = 2 | |||
;; Add HTTP backends dynamicaly if not already defined? (default=on) | |||
;dynamic_backends = on | |||
;;--------------------------------------------------------------- | |||
;;--------------------------------------------------------------- | |||
;; Backend servers | |||
;; | |||
;[debian] | |||
;Questo backend è stato commentato, per prevenire problemi durante | |||
;l'importazione dei backend dalla versione 1onfiguration | |||
; | |||
;;; The main Debian archive | |||
;;; è possibile sovrascrivere la direttiva `timeout` di default: | |||
;;timeout = 30 | |||
; | |||
;;; Rsync server (NOT YET IMPLEMENTED) | |||
;;;rsyncpackages = rsync://ftp.de.debian.org/debian | |||
; | |||
;;; 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 | |||
; | |||
; | |||
;[non-US] | |||
;; Debian non-US archive | |||
;timeout non è stata sovrascritta, quindi verrà mantenuto il | |||
;valore di default | |||
;backends = | |||
; http://ftp.uk.debian.org/debian-non-US | |||
; http://ftp.de.debian.org/debian-non-US | |||
; ftp://ftp.uk.debian.org/debian | |||
;[security] | |||
;Questo backend è stato commentato, per prevenire problemi durante | |||
;l'importazione dei backend dalla versione 1onfiguration | |||
; | |||
;;; Debian security archive | |||
;backends = | |||
; http://security.debian.org/debian-security | |||
; http://ftp2.de.debian.org/debian-security | |||
; | |||
;[openoffice] | |||
;; OpenOffice.org packages | |||
;backends = | |||
; http://ftp.freenet.de/pub/debian-openoffice | |||
; http://ftp.sh.cvut.cz/MIRRORS/OpenOffice.deb | |||
; http://borft.student.utwente.nl/debian | |||
;[apt-proxy] | |||
;; Apt-proxy new versions | |||
;backends = http://apt-proxy.sourceforge.net/apt-proxy | |||
;[backports.org] | |||
;; backports.org | |||
;backends = http://backports.org/debian | |||
;[blackdown] | |||
;;; Blackdown Java | |||
;;backends = http://ftp.gwdg.de/pub/languages/java/linux/debian | |||
; | |||
; | |||
;[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 | |||
[debian] | |||
backends = | |||
http://ftp.it.debian.org/debian | |||
[non-US] | |||
backends = | |||
http://debian.fastweb.it/debian-non-US | |||
http://ftp.debian.org/debian-non-US | |||
http://ftp.it.debian.org/debian-non-US | |||
http://ftp2.it.debian.org/debian-non-US | |||
[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: | |||
<pre> | <pre> | ||
# | # apt-proxy-import | ||
</pre> | </pre> | ||
Comando utilissimo durante la prima installazione: consente di importare dei | |||
pacchetti Debian già scaricati nella cache di apt-proxy. | |||
Utilizzo: | |||
<pre> | |||
# apt-proxy-import --import-dir=/dir/contentente/i/pacchetti | |||
# apt-proxy-v1tov2 | |||
</pre> | |||
Comodissima utility che converte il file di configurazione della versione 1 in | |||
uno compatibile con la versione 2. | |||
Utilizzo: | |||
<pre> | <pre> | ||
# | # apt-proxy-v1tov2 [v1_conf [v2_sample_conf]] > v2_conf | ||
</pre> | </pre> | ||
Di default utilizza /etc/apt-proxy/apt-proxy.conf per v1_conf e | |||
/etc/apt-proxy/apt-proxy-v2.conf per v2_sample_conf. | |||
<pre> | <pre> | ||
# /etc/init.d/apt-proxy | |||
[start|stop|restart|force-reload] | |||
</pre> | </pre> | ||
Script di gestione di apt-proxy: | |||
start: avvia il server; | |||
stop: lo arresta; | |||
restart: lo raivvia; | |||
force-reload: Forza la rilettura del file di configurazione. | |||
==Utilizzo== | |||
Niente di più semplice: basta modificare il proprio | |||
/etc/apt/sources.list | |||
mettendo come server indirizzo_server:9999 | |||
===Esempio=== | |||
Se prima, nel nostro sources.list avevamo una riga del tipo: | |||
<pre> | <pre> | ||
deb http://ftp2.it.debian.org/debian/ testing main | |||
non-free contrib | |||
</pre> | </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 soruces.list dei client: | |||
<pre> | <pre> | ||
deb http://indirizzoserver:9999/debian/ testing main non-free contrib | |||
</pre> | </pre> | ||
3) aggiorniamo apt-proxy | |||
<pre> | |||
# /etc/init.d/apt-proxy force-reload | |||
</pre> | |||
4) aggiorniamo con | |||
<pre> | <pre> | ||
# apt-get | # apt-get update | ||
</pre> | </pre> | ||
Fine! | |||
---- [[User:MaXeR|MaXeR]] | |||
contributi