[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

how to use squid as a Debian package proxy / cache (instead of approx, apt-cacher, etc)



Hi everyone,
	Somewhere I got the idea of using Squid as a package cache instead of approx, 
apt-cacher, apt-proxy, etc. (E.g. [1]) That thread had some of the details 
needed, but it is missing some details.  E.g. The settings that will allow 
the hard drive to spin down.
	Squid is running on an old laptop and is only used when the package lists are 
updated and package files are downloaded.  When these things are not 
happening, I wanted the harddrive to spin down.  Besides using the 
laptop-mode utilities to change the appropriate kernel settings, the 
following options were changed in order that the hard drive spin down when 
connections are not being made through Squid.
	Below are the changes I made to the Debian default configuration for squid 
2.7 and the reason for these changes.

# cache_dir ufs /var/spool/squid 5000 1 2
	The first number "5000" means cache 5000 MB of http responses.  It is 
important to have a large cache in order to store package files.
	Changing the next two numbers finally allowed the hard drive to spin down for 
days at a time. The default setting is 16 256. This creates 16 subdirectories 
with 256 subdirectories.  These 16*256=4096 subdirectories are used to cache 
the http request results (such as the deb packages).  I observed Squid 
reading something from these directories in a sequential fashion every few 
minutes.  (It first reads one subdirectory, waits a couple minutes, then reads 
another, and so on, over and over again.)  Reading of the subdirectories is 
enough to keep the hard drive spinning.  
	Changing the setting so to "1 2" creates 1*2=2 subdirectories.  Although 
Squid still reads these over and over again, apparently the info is cached in 
memory b/c the hard drive no longer spins up.

# access_log syslog:daemon
	Not sure this is necessary for the harddrive to spindown: Causes squid to use 
syslog (rsyslog) to write to the log file.  This might help if rsyslog 
buffers the output more than having squid write the log files directly.

# cache_store_log none
	Turned off writing to this log.  Again, not sure if necessary to allow 
harddrive spindown: The laptop-mode settings may buffer file writes enough.

# http_access allow localnet
	Uncommented this line to allow computers on local network to connect to 
Squid.

# maximum_object_size 153600 KB
	Increase the maximum size of http request reponses so that large debian 
packages will be stored is the cache (rather than discarded).
----------end squid changes---------------

	One also needs to change apt's configuration file so that apt will use the 
Squid computer as a proxy.  On each computer add to /etc/apt/apt.conf the 
line:
Acquire::http::Proxy "http://SQUID_COMPUTER_IPORNAME:3128/";;

	If anyone has improvements please add to this thread.  Maybe we can add this 
to the Debian wiki? :)
	C.

[1] http://lists.debian.org/debian-user/2008/05/msg01761.html


Reply to: