|
|
Riga 1: |
Riga 1: |
| ==Introduzione== | | ==About a boy== |
| 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==
| | Appassionato di Informatica dal '99 circa e GNU/Linux da pochissimi anni. Il fatidico giugno 2005 mi avvicinai al free software installando Debian su questo portatile, che uso tutt'ora. Iniziai da subito con Debian, che non � tra le pi� semplici per iniziare, dopo una lunga chiacchierata in IRC con un tizio che mi folgor� con un paio di screenshot del suo desktop e una serie di spiegazioni su cosa era ed � Debian (Il Sistema Operativo Universale, no?). |
| 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.}}
| | La mia installazione di Debian, poche settimane dopo, produsse, su consiglio di The_Noise, la guida linkata qui sotto. Cerco di tenerla sempre aggiornata con le conoscenze che apprendo ogni tanto. Inoltre ho cercato di contribuire in qualche altro articolo. |
|
| |
|
| | Sono appassionato di grafica tridimensionale, nel sito che ho aperto da poco si possono "ammirare" alcune mie immagini. :D |
|
| |
|
| ==Configurazione== | | ==I miei contributi in== |
|
| |
|
| ===Versione 1===
| | * [[Debian on a Toshiba Satellite M30X-113]] |
| | * [[Debian e lettori mp3 Creative]] |
| | * [[I2c e lm-sensors]] |
| | * [[Installazione driver proprietari Ati]] |
|
| |
|
| La configurazione � molto semplice; tutti i parametri sono contenuti in un file:
| | ==Risorse== |
| /etc/apt-proxy/apt-proxy.conf
| |
|
| |
|
| Ne riporto una versione semplificata, in cui le varie variabili di
| | * [http://cretox.noblogs.org Cretox] |
| configurazione sono commentate:
| | * [http://www.inventati.org/cherudek Cherudek] |
|
| |
|
| <pre>
| | ==Contatti== |
| -------------------------------------------------------
| |
| # imposta la directory in cui salvare al cache
| |
| APT_PROXY_CACHE=/var/cache/apt-proxy
| |
|
| |
|
| # Esempio per il repository ufficiale Debian
| | * '''Mail & Jabber''': cretox [at] anche [dot] no |
| # Debian main
| | * '''Jabber alternativo''': cretox [at] jabber [dot] org |
| #
| |
| # 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>
| |
| | |
| | |
| ===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>
| |
| # apt-proxy-import
| |
| </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>
| |
| # apt-proxy-v1tov2 [v1_conf [v2_sample_conf]] > v2_conf
| |
| </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>
| |
| # /etc/init.d/apt-proxy
| |
| [start|stop|restart|force-reload]
| |
| </pre>
| |
| | |
| 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:
| |
| | |
| <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 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]]
| |
| | |
| [[Categoria:Apt]]
| |
| [[Categoria:Repository]]
| |