Old:Apt-Proxy: un proxy per i pacchetti Debian: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Riga 106: Riga 106:




===Versione 2===
=== Versione 2 ===
In questo periodo è stata rilasciata la versione 2 di apt-proxy (http://apt-proxy.sourceforge.net/).


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.
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
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.
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.
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.
Come per il file di configurazione precedente, riporto una copia del mio file
di configurazione, commentando i vari parametri.


<pre>
<pre>
[DEFAULT]
[DEFAULT]
;; Tutti i valori usati per il tempo sono espressi in secondi, è possibile
;; 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
;; però indicarli anche in minuti(m), ore(h) o giorni(d), posponendo al numero
;; la lettera distintiva dell'unità di misura.
;; la lettera distintiva dell'unità di misura.


;; È possibile impostare l'ip al quale risponde il server
;; È possibile impostare l'IP al quale risponde il server
;; utile per limitare l'accesso (ad esempio non renderlo accessibile
;; utile per limitare l'accesso (ad esempio non renderlo accessibile
;; dall'esterno)
;; dall'esterno)
Riga 142: Riga 139:


;; Rimuovi il commento da questa direttiva per fare in modo che
;; Rimuovi il commento da questa direttiva per fare in modo che
;; apt-proxy continui a scaricare anche se il client si disconnettr
;; apt-proxy continui a scaricare anche se il client si disconnetterà
;; Utile per connessioni always-on (ADSL...)
;; Utile per connessioni always-on (ADSL...)
;; complete_clientless_downloads = 1
;; complete_clientless_downloads = 1
Riga 166: Riga 163:
;passive_ftp = on
;passive_ftp = on


;; Usa un proxy apt
;; Usa un proxy HTTP
;http_proxy = host:port
;http_proxy = host:port



Versione delle 11:57, 31 dic 2008

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:

# apt-get install apt-proxy
Info.png 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:

-------------------------------------------------------
# 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/

-------------------------------------------------------


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, l'esempio riportato presenta dei commenti per i vari parametri.

[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 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 disconnetterà
;; 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 HTTP
;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/

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:

# apt-proxy-import

Comando utilissimo durante la prima installazione: consente di importare dei pacchetti Debian già scaricati nella cache di apt-proxy. Utilizzo:

 
# apt-proxy-import --import-dir=/dir/contentente/i/pacchetti
# apt-proxy-v1tov2

Comodissima utility che converte il file di configurazione della versione 1 in uno compatibile con la versione 2. Utilizzo:

# apt-proxy-v1tov2 [v1_conf [v2_sample_conf]] > v2_conf

Di default utilizza /etc/apt-proxy/apt-proxy.conf per v1_conf e /etc/apt-proxy/apt-proxy-v2.conf per v2_sample_conf.

# /etc/init.d/apt-proxy
[start|stop|restart|force-reload]

Script di gestione di apt-proxy: start: avvia il server; stop: lo arresta; restart: lo riavvia; 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:

deb http://ftp2.it.debian.org/debian/ testing main
non-free contrib

non ci basterà che seguire questi passi, per configurare il server e i client:

1) inseriamo il backend nel server, se non è già presente:

[debian]
	backends =
		http://ftp2.it.debian.org/debian/

2) modifichiamo il sources.list dei client:

deb http://indirizzoserver:9999/debian/ testing main non-free contrib

3) aggiorniamo apt-proxy

# /etc/init.d/apt-proxy force-reload

4) aggiorniamo con

# apt-get update


Fine!



MaXeR