Usare apt-cacher per creare una cache dei pacchetti usabile in una LAN: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
m (rimosso link a guida obsoleta)
 
(24 versioni intermedie di 11 utenti non mostrate)
Riga 1: Riga 1:
=Introduzione=
{{Versioni compatibili|Squeeze|Wheezy}}
Il pacchetto bootsplash per Debian, presente nei repository:
== Introduzione ==
<pre>
Apt-cacher è un programma che ha lo scopo di creare una cache di [[pacchetto|pacchetti deb]] su un server, per poi renderli disponibili a tutte le macchine presenti sulla LAN. In questo modo è possibile limitare la banda utilizzata in uscita e velocizzare i tempi di installazione.
deb http://debian.bootsplash.de unstable main
deb-src http://debian.bootsplash.de unstable main
</pre>
� molto comodo per la gestione dei temi, ma ha un ''difetto'': utilizza debconf per la gestione dei temi. Questo porta ad un effetto collaterale: i temi installati manualmente non saranno riconosciuti e per poterli usare si dovranno eseguire operazioni scomode (rispetto ad un semplice ''dpkg-reconfigure bootsplash'' :-) ).
 
Vedremo, ora, come creare un pacchetto Debian contenente un tema, e come gestire il template di debconf per aggiornare la lista dei temi.
 
{{Box|Nota Bene:|gli script qui descritti non sono opera mia, ma di [mailto:oliver_at_dediziert_dot_org Oliver Sorge], che mantiene i temi presenti nel repository sopra riportato}}
 
=Requisiti=
Per poter creare un pacchetto Debian dobbiamo installare i seguenti pacchetti:
* build-essential
* dpkg-dev
* dh-make
* debhelper
 
=Creazione del pacchetto=
Estraiamo il pacchetto contenente il tema, e rinominiamo la directory contenente il tema in un formato del tipo ''bootsplash-theme-<nometema>-<versione>''.


La directory deve contenere le directory images, ...
A differenza di <code>apt-proxy</code>, ora obsoleto e non più supportato, <code>apt-cacher</code> ha una struttura completamente piatta, per cui i pacchetti della cache sono conservati in una unica directory anche se provengono da [[repository]] diversi; questa soluzione ne rende l'utilizzo più semplice e immediato.


Una volta completato, lanciamo il comando
==Installazione==
Per installare apt-cache è sufficiente digitare sul server che dovrà contenere la cache
<pre>
<pre>
$ dh_make --copyright GPL
# apt-get install apt-cacher
</pre>
</pre>
ovviamente dopo aver verificato la licenza del tema...
{{Box|NOTE| Se si hanno problemi con '''apt-cacher''' provare la versione più aggiornata '''apt-cacher-ng'''.}}
 
Alla domanda
<pre>
Type of package: single binary, multiple binary, library, or kernel module?
[s/m/l/k]</pre> rispondiamo con una ''s''.


Controlliamo i dati riportati (per il nome e l'email possiamo usare le variabili d'ambiente $DEBEMAIL e $DEBFULLNAME); se tutto � corretto � possibile andare avanti.
==Configurazione==
Per configurare apt-cacher è necessario:


Verr� cos� creata la directory debian/, contenente tutto il necessario per il nostro pacchetto.
1) modificare il file <code>/etc/default/apt-cacher</code> ponendo ad <code>1</code> il valore di <code>AUTOSTART</code>. In questo modo apt-cacher si avvierà automaticamente ad ogni sessione. Nel caso vogliate avviare/fermare apt-cacher manualmente basterà usare il comando:
 
==La directory debian/*==
===Rimozione dei file non necessari===
La directory debian/ contiene molti file non necessari, che possiamo tranquillamente rimuovere:
<pre>
<pre>
$ cd debian
# /etc/init.d/apt-cacher {start|stop|restart|force-reload}
$ rm conffiles.ex cron.d.ex emacsen* init.d.ex manpage* matrix* menu.ex watch*
</pre>
</pre>
 
2) modificare il file <code>/etc/apt-cacher/apt-cacher.conf
===.templates===
</code> che contiene tutte le opzioni configurabili.
Dobbiamo creare il template utilizzato da debconf. Creiamo, quindi, un file del tipo ''bootsplash-theme-<nometema>.template'' con il seguente contenuto:
Riportiamo il file di configurazione originale per completezza
<pre>
<pre>
Template: shared/bootsplash-theme
#################################################################
Type: select
# This is the config file for apt-cacher. On most Debian systems
Choices: ${choices}
# you can safely leave the defaults alone.
Description: Please select theme bootsplash should use.
#################################################################
Please select the theme bootsplash should use. If you wish to
change it at a later date, just run dpkg-reconfigure bootsplash.


Template: bootsplash-theme-<nometema>/resolutions
# cache_dir is used to set the location of the local cache. This can
Type: multiselect
# become quite large, so make sure it is somewhere with plenty of space.
Choices: 1024x768
cache_dir=/var/cache/apt-cacher
Default: 1024x768
Description: Select the resoultion you would like to enable bootsplash for.
You need to select which resolutions bootsplash should be enabled for, also
remember to include the proper (vga=???) line in your lilo.conf.
</pre>
Ricordandoci di sostituire a ''<nometema>'' il nome del nostro tema ed eventualmente sistemare i valori delle risoluzioni.


===rules===
# The email address of the administrator is displayed in the info page
Il file ''debian/rules'' necessit� di molte modifiche... Conviene, quindi, sostituire il contenuto con questo:
# and traffic reports.
<pre>
admin_email=root@localhost
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.


# Uncomment this to turn on verbose mode.
# For the daemon startup settings please edit the file /etc/default/apt-cacher.
# export DH_VERBOSE=1


# Edit these lines!!!
# Daemon port setting, only useful in stand-alone mode. You need to run the
THEME_DIRS = images config animations bootloader
# daemon as root to use privileged ports (<1024).
THEME_SUFFIX = <nometema>
daemon_port=3142


configure: configure-stamp
# optional settings, user and group to run the daemon as. Make sure they have
configure-stamp:
# sufficient permissions on the cache and log directories. Comment the settings
        dh_testdir
# to run apt-cacher as the native user.
        touch configure-stamp
group=www-data
user=www-data


build: build-stamp
# optional setting, binds the listening daemon to one specified IP. Use IP
# ranges for more advanced configuration, see below.
# daemon_addr=localhost


build-stamp: configure-stamp
# If your apt-cacher machine is directly exposed to the Internet and you are
        dh_testdir
# worried about unauthorised machines fetching packages through it, you can
        touch build-stamp
# specify a list of IPv4 addresses which are allowed to use it and another
# list of IPv4 addresses which aren't.
# Localhost (127.0.0.1) is always allowed. Other addresses must be matched
# by allowed_hosts and not by denied_hosts to be permitted to use the cache.
# Setting allowed_hosts to "*" means "allow all".
# Otherwise the format is a comma-separated list containing addresses,
# optionally with masks (like 10.0.0.0/22), or ranges of addresses (two
# addresses separated by a hyphen, no masks, like '192.168.0.3-192.168.0.56').
allowed_hosts=*
denied_hosts=


clean:
# And similiarly for IPv6 with allowed_hosts_6 and denied_hosts_6.
        dh_testdir
# Note that IPv4-mapped IPv6 addresses (::ffff:w.x.y.z) are truncated to
        dh_testroot
# w.x.y.z and are handled as IPv4.
        rm -f build-stamp configure-stamp
allowed_hosts_6=fec0::/16
        dh_clean
denied_hosts_6=


install: build
# This thing can be done by Apache but is much simplier here - limit access to
        dh_testdir
# Debian mirrors based on server names in the URLs
        dh_testroot
#allowed_locations=ftp.uni-kl.de,ftp.nerim.net,debian.tu-bs.de
        dh_clean -k
        dh_installdirs
        -cp -a $(THEME_DIRS) \
"$(CURDIR)/debian/bootsplash-theme-$(THEME_SUFFIX)/etc/bootsplash/themes/$(THEME_SUFFIX)/"


binary-indep: build install
# Apt-cacher can generate usage reports every 24 hours if you set this
        # We have nothing to do by default.
# directive to 1. You can view the reports in a web browser by pointing
# to your cache machine with '/apt-cacher/report' on the end, like this:
#      http://yourcache.example.com/apt-cacher/report
# Generating reports is very fast even with many thousands of logfile
# lines, so you can safely turn this on without creating much
# additional system load.
generate_reports=1


# Build architecture-dependent files here.
# Apt-cacher can clean up its cache directory every 24 hours if you set
binary-arch: build install
# this directive to 1. Cleaning the cache can take some time to run
        dh_testdir
# (generally in the order of a few minutes) and removes all package
        dh_testroot
# files that are not mentioned in any existing 'Packages' lists. This
        dh_installchangelogs
# has the effect of deleting packages that have been superseded by an
        dh_installdocs
# updated 'Packages' list.
        dh_installdebconf
clean_cache=1
        dh_link
        dh_strip
        dh_compress
        dh_fixperms
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
        dh_md5sums
        dh_builddeb


binary: binary-indep binary-arch
# The directory to use for apt-cacher access and error logs.
.PHONY: build clean binary-indep binary-arch binary install configure
# The access log records every request in the format:
</pre>
# date-time|client ip address|HIT/MISS/EXPIRED|object size|object name
# The error log is slightly more free-form, and is also used for debug
# messages if debug mode is turned on.
# Note that the old 'logfile' and 'errorfile' directives are
# deprecated: if you set them explicitly they will be honoured, but it's
# better to just get rid of them from old config files.
logdir=/var/log/apt-cacher


ricordando le seguente cose:
# apt-cacher can use different methods to decide whether package lists need to
* fare attenzione ad usare la tabulazioni (tasto <tab>) al posto degli spazi per le indentazioni (obbligatorie)!
# be updated,
* modificare la variabile THEME_DIRS riportando solo le directory presenti all'interno della directory ''<nometema>-<versione>'' ad eccezione di ''debian''.
# A) looking at the age of the cached files
* modificare la variabile THEME_SUFFIX con il nome del tema.
# B) getting HTTP header from server and comparing that with cached data. This
# method is more reliable and avoids desynchronisation of data and index files
# but needs to transfer few bytes from the server every time somebody requests
# the files ("apt-get update")
# Set the following value to the maximum age (in hours) for method A or to 0
# for method B
expire_hours=0


===control===
# Apt-cacher can pass all its requests to an external http proxy like
Il file ''debian/control'' necessita di alcune modifiche:
# Squid, which could be very useful if you are using an ISP that blocks
* ''Section'' dovrebbe essere modificata in ''graphics''
# port 80 and requires all web traffic to go through its proxy. The
* ''Architecture'' pu� essere modificato in ''all'', visto che il pacchetto non sar� dipendente dall'architettura
# format is 'hostname:port', eg: 'proxy.example.com:8080'.
* ''Depends'' pu� essere modificato in ''bootsplash (>= 3.0.0), debconf (>= 0.5) | debconf-2.0''
http_proxy=proxy.example.com:8080
* deve essere aggiunta la riga ''Provides: bootsplash-theme''
* la descrizione deve essere modificata nel seguente modo (in linea coi pacchetti di http://www.bootsplash.de ):
<pre>Description: The bootsplash theme <nometema>
This is another bootsplash theme packaged for the Debian GNU/Linux
Operating System.  
.
Resolutions: 1280x1024</pre>


===dirs===
# Use of an external proxy can be turned on or off with this flag.
Dovr� contenere
# Value should be either 0 (off) or 1 (on).
<pre>
use_proxy=0
etc/bootsplash/themes/<nometema>
</pre>


===docs===
# External http proxy sometimes need authentication to get full access. The
Dovr� contenere
# format is 'username:password'.
<pre>
http_proxy_auth=proxyuser:proxypass
docs/*
</pre>
se la directory � presente nei sorgenti del tema (altrimenti si pu� omettere questo file).


===postinst===
# Use of external proxy authentication can be turned on or off with this flag.
Usiamo direttamente quelli creati per i pacchetti dei temi presenti su http://www.bootsplash.org :
# Value should be either 0 (off) or 1 (on).
<pre>
use_proxy_auth=0
#! /bin/sh
# postinst script for test
#
# see: dh_installdeb(1)


set -e
# Rate limiting sets the maximum bandwidth in bytes per second to use
. /usr/share/debconf/confmodule
# for fetching packages. Syntax is fully defined in 'man wget'.
# Use 'k' or 'm' to use kilobits or megabits / second: eg, 'limit=25k'.
# Use 0 or a negative value for no rate limiting.
limit=0


THEME_SUFFIX=<nometema>
# Debug mode makes apt-cacher spew a lot of extra debug junk to the
# error log (whose location is defined with the 'logdir' directive).
# Leave this off unless you need it, or your error log will get very
# big. Acceptable values are 0 or 1.
debug=0


# summary of how this script can be called:
# Adapt the line in the usage info web page to match your server configuration
#        * <postinst> `configure' <most-recently-configured-version>
# example_sources_line=deb&nbsp;http://<b>my.cacher.server:3142/</b>ftp.au.debian.org/debian&nbsp;unstable&nbsp;main&nbsp;contrib&nbsp;non-free
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#         <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
#


case "$1" in
# Print a 410 (Gone) HTTP message with the specified text when accessed via
    configure)
# CGI. Useful to tell users to adapt their sources.list files when the
        db_register shared/bootsplash-theme bootsplash-theme-$THEME_SUFFIX
# apt-cacher server is beeing relocated (via apt-get's error messages while
    ;;
# running "update")
#cgi_advise_to_use = Please use http://cacheserver:3142/ as apt-cacher access URL
#cgi_advise_to_use = Server relocated. To change sources.list, run perl -pe "s,/apt-cacher\??,:3142," -i /etc/apt/sources.list


    abort-upgrade|abort-remove|abort-deconfigure)
# Server mapping - this allows to hide real server names behind virtual paths
    ;;
# that appear in the access URL. This method is known from apt-proxy. This is
# also the only method to use FTP access to the target hosts. The syntax is simple, the part of the beginning to replace, followed by a list
#of mirror urls, all space separated. Multiple profile are separated by semicolons
# path_map = debian ftp.uni-kl.de/pub/linux/debian ftp2.de.debian.org/debian ; ubuntu archive.ubuntu.com/ubuntu ;  
#security security.debian.org/debian-security ftp2.de.debian.org/debian-security
# Note that you need to specify all target servers in the allowed_locations
# options if you make use of it. Also note that the paths should not overlap
# each other. FTP access method not supported yet, maybe in the future.
</pre>


    *)
Le opzioni più importanti sono:
        gettext -s "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac


# dh_installdeb will replace this with shell code automatically
# <code>cache_dir</code> che determina la directory in cui verrà salvata la cache;
# generated by other debhelper scripts.
# <code>allowed_hosts</code> che specifica uno o più indirizzi a cui limitare l'accesso alla cache. Volendo per esempio autorizzare tutti gli indirizzi della propria LAN basterebbe specificare <code>allowed_hosts=192.168.1.0/24</code> (posto naturalmente che il formato indirizzi della propria LAN sia 192.168.1.X).
# <code>daemon_port</code> che specifica la porta sulla quale ascolta apt-cacher.


#DEBHELPER#
== Client ==
Non è necessario installare apt-cacher sui client. Per accedere alla cache potrete:


exit 0
'''Metodo 1''' (più veloce)
</pre>
===postrm===
<pre>
#! /bin/sh
# postrm script for bootsplash-theme-newtux
#
# see: dh_installdeb(1)


set -e
modificare il file <code>/etc/apt/apt.conf</code> inserendo una riga da del tipo:


# summary of how this script can be called:
<pre>Acquire::http::Proxy "http://server_con_cache:porta/"; </pre>
#        * <postrm> `remove'
#        * <postrm> `purge'
#        * <old-postrm> `upgrade' <new-version>
#        * <new-postrm> `failed-upgrade' <old-version>
#        * <new-postrm> `abort-install'
#        * <new-postrm> `abort-install' <old-version>
#        * <new-postrm> `abort-upgrade' <old-version>
#        * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


# Theme variables
Chiariamo il concetto con un esempio. <br>
THEME_SUFFIX=<nometema>
Supponiamo che il server abbia [[hostname]] "computer" e apt-cacher ascolti sulla porta 3142 (quella di default).


La nuova riga da inserire per utilizzare la cache sarà:


case "$1" in
<pre>Acquire::http::Proxy "http://computer:3142/";</pre>
      remove)


        # This only applies to the remove process.
        # By default the directory of the theme under
        # /etc/bootsplash/themes will not be removed.
        # However, this postrm script will do this if
        # a directory exists.
        if [ -d /etc/bootsplash/themes/$THEME_SUFFIX ]
        then
                gettext -s "Deleting orphaned files under /etc/bootsplash/themes/$THEME_SUFFIX ... "
                rm -rf /etc/bootsplash/themes/$THEME_SUFFIX || gettext -s "ERROR: Couldn't delete directory /etc/bootsplash/themes/$THEME_SUFFIX."
        fi
        ;;


      purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
'''Metodo 2'''


dovrete solo modificare il file <code>/etc/apt/sources.list</code> inserendo una riga da del tipo:
<pre>
deb http://server_con_cache:porta/repository_da_utilizzare/debian [flavour] [sezioni]
</pre>


        ;;
Chiariamo il concetto con un esempio. <br>
Supponiamo che il server abbia hostname "computer" e apt-cacher ascolti sulla porta 3142 (quella di default). Supponiamo poi che il repository utilizzato sia:


    *)
<pre>deb http://ftp.it.debian.org/debian unstable main contrib non-free</pre>
        gettext -s "postrm called with unknown argument \`$1'" >&2
        exit 1


esac
La nuova riga da inserire per utilizzare la cache sarà:
# dh_installdeb will replace this with shell code automatically
<pre>deb http://computer:3142/ftp.it.debian.org/debian unstable main contrib non-free</pre>
# generated by other debhelper scripts.


# Automatically added by dh_installdebconf
Infine, quale che sia il metodo scelto, basterà salvare e lanciare un:
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
<pre># apt-get update</pre>
        . /usr/share/debconf/confmodule
        db_purge
fi
# End automatically added section


per cominciare ad utilizzare la cache.


exit 0
Importante notare che tutte le righe dovranno presentare la dicitura "deb http" e non "deb ftp".
</pre>


===prerm===
==Importare Pacchetti==
A questo punto siamo pronti per usare apt-cacher. Se però si hanno già a disposizione tanti pacchetti installati sul server e presenti nella directory<code>/var/cache/apt/archives</code> potreste volerli importare nella cache. Niente di più semplice: copiate tutti i pacchetti nella directory<code>/var/cache/apt-cacher/import</code>e poi lanciate il comando:
<pre>
<pre>
#! /bin/sh
# /usr/share/apt-cacher/apt-cacher-import.pl
# prerm script for bootsplash-theme-debblue
</pre>
#
che mette a disposizione tutti i pacchetti importati nella cache.
# see: dh_installdeb(1)
 
set -e
. /usr/share/debconf/confmodule


# summary of how this script can be called:
Non resta che augurare happy caching!
#        * <prerm> `remove'
#        * <old-prerm> `upgrade' <new-version>
#        * <new-prerm> `failed-upgrade' <old-version>
#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
#        * <deconfigured's-prerm> `deconfigure' `in-favour'
#          <package-being-installed> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
==Nota==
    remove|upgrade|deconfigure)
In caso di installazione su un server di rete a cui accedono altre installazioni, è utile ricordare che solo a partire dalla versione 1.6.10 di apt-cacher sono supportati i pacchetti per codice sorgente in formato "3.0 (quilt)" e "3.0 (native)". Tali formati sono stati introdotti a partire dal rilascio della versione 6.0 di Debian (nome in codice "Squeeze").
        # I no longer claim this question.
        db_unregister shared/bootsplash-theme
        # See if the shared question still exists.
        if db_get shared/bootsplash-theme; then
                db_metaget shared/bootsplash-theme owners
                db_subst shared/bootsplash-theme choices $RET
                db_metaget shared/bootsplash-theme value
                if [ "<package>" = "$RET" ] ; then
                        db_fset shared/bootsplash-theme seen false
                        db_input high shared/bootsplash-theme || true
                        db_go || true
                fi
        fi
        ;;


    failed-upgrade)
== Errori ==
        ;;
    *)
        gettext -s "prerm called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac


exit 0
=== 503 OUT_OF_DISK_SPACE ===
</pre>
 
=Compilazione=
La compilazione di un pacchetto � semplicissima: nella directory contenente i sorgenti diamo il seguente comando:
<pre>
$ dpkg-buildpackage
</pre>
se tutto va a buon fine, verr� creato un pacchetto debian nella directory superiore.


=Test del pacchetto=
Quest'errore potrebbe comparire quando si esegue <code>aptitude upgrade</code> e significa che la partizione dove vengono memorizzati i pacchetti è piena. Si tratta quindi di liberare spazio su disco, per esempio digitando <code>aptitude autoclean</code> (e se non bastasse <code>aptitude clean</code>); è comunque probabile che col tempo il problema si ripresenti, valutare quindi di ampliare la partizione per la memorizzazione dei pacchetti o di definirne addirittura una differente.
L'unico modo per testare il pacchetto � installarlo (dpkg -i pacchetto.deb) e riconfigurare il pacchetto bootsplash (dpkg-reconfigure bootsplash)... se tutto � stato fatto correttamente, nella lista apparir� il nuovo tema...


=Conclusioni=
{{Autori
La guida qui riportata � frutto dell'analisi dei pacchetti ''bootsplash-theme-*'' presenti nel repository di http://www.bootsplash.de ;)
|Autore=[[Utente:giorsat|giorsat]]
|Estesa_da=
:[[Utente:Sal|Sal]]
|Verificata_da=
:[[Utente:Wtf|Wtf]] 16:31, 24 ago 2011 (CEST)
:[[Utente:porkyhttp|porkyhttp]] 16:58, 06 mag 2012 (CEST)
|Numero_revisori=2
}}


[[Categoria:Apt]]
[[Categoria:Condivisione risorse]][[Categoria:Apt]]
[[Categoria:Apt-Dev]]
[[Categoria:Repository]]

Versione attuale delle 11:05, 8 mag 2016

Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"

Introduzione

Apt-cacher è un programma che ha lo scopo di creare una cache di pacchetti deb su un server, per poi renderli disponibili a tutte le macchine presenti sulla LAN. In questo modo è possibile limitare la banda utilizzata in uscita e velocizzare i tempi di installazione.

A differenza di apt-proxy, ora obsoleto e non più supportato, apt-cacher ha una struttura completamente piatta, per cui i pacchetti della cache sono conservati in una unica directory anche se provengono da repository diversi; questa soluzione ne rende l'utilizzo più semplice e immediato.

Installazione

Per installare apt-cache è sufficiente digitare sul server che dovrà contenere la cache

# apt-get install apt-cacher
Info.png NOTE
Se si hanno problemi con apt-cacher provare la versione più aggiornata apt-cacher-ng.


Configurazione

Per configurare apt-cacher è necessario:

1) modificare il file /etc/default/apt-cacher ponendo ad 1 il valore di AUTOSTART. In questo modo apt-cacher si avvierà automaticamente ad ogni sessione. Nel caso vogliate avviare/fermare apt-cacher manualmente basterà usare il comando:

# /etc/init.d/apt-cacher {start|stop|restart|force-reload}

2) modificare il file /etc/apt-cacher/apt-cacher.conf che contiene tutte le opzioni configurabili. Riportiamo il file di configurazione originale per completezza

#################################################################
# This is the config file for apt-cacher. On most Debian systems
# you can safely leave the defaults alone.
#################################################################

# cache_dir is used to set the location of the local cache. This can
# become quite large, so make sure it is somewhere with plenty of space.
cache_dir=/var/cache/apt-cacher

# The email address of the administrator is displayed in the info page
# and traffic reports.
admin_email=root@localhost

# For the daemon startup settings please edit the file /etc/default/apt-cacher.

# Daemon port setting, only useful in stand-alone mode. You need to run the
# daemon as root to use privileged ports (<1024).
daemon_port=3142

# optional settings, user and group to run the daemon as. Make sure they have
# sufficient permissions on the cache and log directories. Comment the settings
# to run apt-cacher as the native user.
group=www-data
user=www-data

# optional setting, binds the listening daemon to one specified IP. Use IP
# ranges for more advanced configuration, see below.
# daemon_addr=localhost

# If your apt-cacher machine is directly exposed to the Internet and you are
# worried about unauthorised machines fetching packages through it, you can
# specify a list of IPv4 addresses which are allowed to use it and another
# list of IPv4 addresses which aren't.
# Localhost (127.0.0.1) is always allowed. Other addresses must be matched
# by allowed_hosts and not by denied_hosts to be permitted to use the cache.
# Setting allowed_hosts to "*" means "allow all".
# Otherwise the format is a comma-separated list containing addresses,
# optionally with masks (like 10.0.0.0/22), or ranges of addresses (two
# addresses separated by a hyphen, no masks, like '192.168.0.3-192.168.0.56').
allowed_hosts=*
denied_hosts=

# And similiarly for IPv6 with allowed_hosts_6 and denied_hosts_6.
# Note that IPv4-mapped IPv6 addresses (::ffff:w.x.y.z) are truncated to
# w.x.y.z and are handled as IPv4.
allowed_hosts_6=fec0::/16
denied_hosts_6=

# This thing can be done by Apache but is much simplier here - limit access to
# Debian mirrors based on server names in the URLs
#allowed_locations=ftp.uni-kl.de,ftp.nerim.net,debian.tu-bs.de

# Apt-cacher can generate usage reports every 24 hours if you set this
# directive to 1. You can view the reports in a web browser by pointing
# to your cache machine with '/apt-cacher/report' on the end, like this:
#      http://yourcache.example.com/apt-cacher/report
# Generating reports is very fast even with many thousands of logfile
# lines, so you can safely turn this on without creating much 
# additional system load.
generate_reports=1

# Apt-cacher can clean up its cache directory every 24 hours if you set
# this directive to 1. Cleaning the cache can take some time to run
# (generally in the order of a few minutes) and removes all package
# files that are not mentioned in any existing 'Packages' lists. This
# has the effect of deleting packages that have been superseded by an
# updated 'Packages' list.
clean_cache=1

# The directory to use for apt-cacher access and error logs.
# The access log records every request in the format:
# date-time|client ip address|HIT/MISS/EXPIRED|object size|object name
# The error log is slightly more free-form, and is also used for debug
# messages if debug mode is turned on.
# Note that the old 'logfile' and 'errorfile' directives are
# deprecated: if you set them explicitly they will be honoured, but it's
# better to just get rid of them from old config files.
logdir=/var/log/apt-cacher

# apt-cacher can use different methods to decide whether package lists need to
# be updated,
# A) looking at the age of the cached files
# B) getting HTTP header from server and comparing that with cached data. This
# method is more reliable and avoids desynchronisation of data and index files
# but needs to transfer few bytes from the server every time somebody requests
# the files ("apt-get update")
# Set the following value to the maximum age (in hours) for method A or to 0
# for method B
expire_hours=0

# Apt-cacher can pass all its requests to an external http proxy like
# Squid, which could be very useful if you are using an ISP that blocks
# port 80 and requires all web traffic to go through its proxy. The
# format is 'hostname:port', eg: 'proxy.example.com:8080'.
http_proxy=proxy.example.com:8080

# Use of an external proxy can be turned on or off with this flag.
# Value should be either 0 (off) or 1 (on).
use_proxy=0

# External http proxy sometimes need authentication to get full access. The
# format is 'username:password'.
http_proxy_auth=proxyuser:proxypass

# Use of external proxy authentication can be turned on or off with this flag.
# Value should be either 0 (off) or 1 (on).
use_proxy_auth=0

# Rate limiting sets the maximum bandwidth in bytes per second to use
# for fetching packages. Syntax is fully defined in 'man wget'.
# Use 'k' or 'm' to use kilobits or megabits / second: eg, 'limit=25k'.
# Use 0 or a negative value for no rate limiting.
limit=0

# Debug mode makes apt-cacher spew a lot of extra debug junk to the
# error log (whose location is defined with the 'logdir' directive).
# Leave this off unless you need it, or your error log will get very
# big. Acceptable values are 0 or 1.
debug=0

# Adapt the line in the usage info web page to match your server configuration
# example_sources_line=deb http://<b>my.cacher.server:3142/</b>ftp.au.debian.org/debian unstable main contrib non-free

# Print a 410 (Gone) HTTP message with the specified text when accessed via
# CGI. Useful to tell users to adapt their sources.list files when the
# apt-cacher server is beeing relocated (via apt-get's error messages while
# running "update")
#cgi_advise_to_use = Please use http://cacheserver:3142/ as apt-cacher access URL
#cgi_advise_to_use = Server relocated. To change sources.list, run perl -pe "s,/apt-cacher\??,:3142," -i /etc/apt/sources.list

# Server mapping - this allows to hide real server names behind virtual paths
# that appear in the access URL. This method is known from apt-proxy. This is
# also the only method to use FTP access to the target hosts. The syntax is simple, the part of the beginning to replace, followed by a list 
#of mirror urls, all space separated. Multiple profile are separated by semicolons
# path_map = debian ftp.uni-kl.de/pub/linux/debian ftp2.de.debian.org/debian ; ubuntu archive.ubuntu.com/ubuntu ; 
#security security.debian.org/debian-security ftp2.de.debian.org/debian-security
# Note that you need to specify all target servers in the allowed_locations
# options if you make use of it. Also note that the paths should not overlap
# each other. FTP access method not supported yet, maybe in the future.

Le opzioni più importanti sono:

  1. cache_dir che determina la directory in cui verrà salvata la cache;
  2. allowed_hosts che specifica uno o più indirizzi a cui limitare l'accesso alla cache. Volendo per esempio autorizzare tutti gli indirizzi della propria LAN basterebbe specificare allowed_hosts=192.168.1.0/24 (posto naturalmente che il formato indirizzi della propria LAN sia 192.168.1.X).
  3. daemon_port che specifica la porta sulla quale ascolta apt-cacher.

Client

Non è necessario installare apt-cacher sui client. Per accedere alla cache potrete:

Metodo 1 (più veloce)

modificare il file /etc/apt/apt.conf inserendo una riga da del tipo:

Acquire::http::Proxy "http://server_con_cache:porta/"; 

Chiariamo il concetto con un esempio.
Supponiamo che il server abbia hostname "computer" e apt-cacher ascolti sulla porta 3142 (quella di default).

La nuova riga da inserire per utilizzare la cache sarà:

Acquire::http::Proxy "http://computer:3142/";


Metodo 2

dovrete solo modificare il file /etc/apt/sources.list inserendo una riga da del tipo:

deb http://server_con_cache:porta/repository_da_utilizzare/debian [flavour] [sezioni]

Chiariamo il concetto con un esempio.
Supponiamo che il server abbia hostname "computer" e apt-cacher ascolti sulla porta 3142 (quella di default). Supponiamo poi che il repository utilizzato sia:

deb http://ftp.it.debian.org/debian unstable main contrib non-free

La nuova riga da inserire per utilizzare la cache sarà:

deb http://computer:3142/ftp.it.debian.org/debian unstable main contrib non-free

Infine, quale che sia il metodo scelto, basterà salvare e lanciare un:

# apt-get update

per cominciare ad utilizzare la cache.

Importante notare che tutte le righe dovranno presentare la dicitura "deb http" e non "deb ftp".

Importare Pacchetti

A questo punto siamo pronti per usare apt-cacher. Se però si hanno già a disposizione tanti pacchetti installati sul server e presenti nella directory/var/cache/apt/archives potreste volerli importare nella cache. Niente di più semplice: copiate tutti i pacchetti nella directory/var/cache/apt-cacher/importe poi lanciate il comando:

# /usr/share/apt-cacher/apt-cacher-import.pl

che mette a disposizione tutti i pacchetti importati nella cache.

Non resta che augurare happy caching!

Nota

In caso di installazione su un server di rete a cui accedono altre installazioni, è utile ricordare che solo a partire dalla versione 1.6.10 di apt-cacher sono supportati i pacchetti per codice sorgente in formato "3.0 (quilt)" e "3.0 (native)". Tali formati sono stati introdotti a partire dal rilascio della versione 6.0 di Debian (nome in codice "Squeeze").

Errori

503 OUT_OF_DISK_SPACE

Quest'errore potrebbe comparire quando si esegue aptitude upgrade e significa che la partizione dove vengono memorizzati i pacchetti è piena. Si tratta quindi di liberare spazio su disco, per esempio digitando aptitude autoclean (e se non bastasse aptitude clean); è comunque probabile che col tempo il problema si ripresenti, valutare quindi di ampliare la partizione per la memorizzazione dei pacchetti o di definirne addirittura una differente.




Guida scritta da: giorsat Swirl-auth60.png Debianized 60%
Estesa da:
Sal
Verificata da:
Wtf 16:31, 24 ago 2011 (CEST)
porkyhttp 16:58, 06 mag 2012 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized