1 487
contributi
m (firma) |
m (firma) |
||
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> | ||
# apt- | ------------------------------------------------------- | ||
# 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> | ||
[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> | |||
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! | |||
---- [[User:MaXeR|MaXeR]] | ---- [[User:MaXeR|MaXeR]] |
contributi