apt-proxy is a caching proxy for use with apt on Debian systems. It is useful anywhere where you have more than one Debian machine together on a network which is faster than your internet connection (most networks are). It builds up a partial Debian mirror, containing those files which have been requested by clients.
Version 1 is now in maintainence mode only. New features will only go into version 2.
Because apt-proxy understands the Debian mirror structure, it is able to manage the mirror directory more efficiently than a general cache such as Squid. It can use the Packages files to determine which package versions are current and purge older versions.
apt-proxy was originally written to use rsync to transfer files. For large Packages files this is more efficient because only the changed parts need to be transfered. However, compressed files(.gz or .deb) are generally not rsyncable, resulting in no speedup. In addition, the rsync protocol puts more load on the backend server than http.
http/ftp support uses wget to transfer files. HTTP is usually the best protocol to use.
caching of all apt requests from Debian machines
builds up a partial mirror directory automatically, with exactly the same directory structure and filenames as the original mirror.
automatic purging of versions no longer in the distribution
automatic unused file cleaning, tunable by user defined parameters
makes sources.list configuration easier for multiple machines - if you change your internet backend server you only have to make the change once in apt-proxy, instead of on all Debian machines.
works with multiple architectures
http backend support (http://host/...)
rsync backend support (host::...)
ftp backend support (ftp://host/...)
existing .debs can be automatically moved into the apt-proxy cache using apt-proxy-import
apt-proxy version 2 is prepackaged to run on Debian Sarge or unstable systems. Version 2 needs Twisted 1.0 or later, which is not available in Woody.
apt-proxy version 1 is prepackaged to run on Debian Woody or unstable systems. It is also installable from the source tarball for other Unix systems (see INSTALL). It requires a POSIX shell interpreter and wget and/or rsync. It has been sucessfully used on SuSE, Red Hat and Solaris.
For more information about the apt-able archive, see http://apt-proxy.sourceforge.net/apt-proxy/README.
These versions are available from Debian unstable. See http://packages.debian.org/apt-proxy for the latest available version.
For Debian Woody/unstable system (Woody has 1.3.0):
apt-get install apt-proxy#
Achim Dreyer contributed a version with support for apt4rpm. This is available from the Sourceforge download area.
You can access CVS directly.
These are all available in the package itself. If you are using an older version, you might like to look at the latest versions online:
Subscribe to apt-proxy-users
You can find the #apt-proxy channel on irc.openprojects.net. You are welcome to come and join in the discussion about apt-proxy v2, or to ask general questions. Chris Halls is generally around on weekdays (European time) as haggai.
apt-proxy v2 is dedicated to Manuel Estrada 'ranty' Sainz, who
rewrote apt-proxy version 1 in Python. He died in a tragic car
accident while returning from the Free Software conference held at
Valencia, Spain in May 2004.
Chris Halls took on apt-proxy in December 2001 to address the
immediate shortcomings and make sure that apt-proxy would be ready
for the Woody release. Manuel Estrada Sainz rewrote apt-proxy in
Python starting in July 2002, but ran out of time to complete all
features and passed it back to Chris at the beginning of 2004.
Otavio Salvador became co-maintainer in June 2004.
Version 2 is a complete rewrite using Python and the twisted
framework. The initial release will contain all the features of
v1 plus a few extra goodies. The packages have been available in
Debian unstable for some time but there are still some problems, which
have kept apt-proxy out of Sarge for now.
The main shortcoming with apt-proxy v1 was its speed. Because it was written as a shell script, it was not particularly fast. Also, it spent at least a year in an unreliable state, due to changes in the archive structure which it was not built to cope with. As a result, several other programs have sprung up in the attempt to address some of those problems. However, none of them has yet got as far as supporting the full feature set of apt-proxy, and only apt-cacher is still active and has made it into the official Debian distribution.
There are now 2 branches in CVS:
apt-proxy-v1 is the older, released version in shell
HEAD is the new Python+twisted version, which will become the 2.0 version when released
You can access CVS like this:
cvs -d:pserver:email@example.com:/cvsroot/apt-proxy login
for version 2:
cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/apt-proxy co apt-proxy
or for version 1:
cvs -z3 -d:pserver:email@example.com:/cvsroot/apt-proxy co -r apt-proxy-v1 apt-proxy
You can also browse CVS using ViewCVS:
apt-proxy v1 was written by Paul 'Rusty' Russel. and later maintained by Chris Halls.
Manuel Estrada Sainz (ranty) wrote v2, with additional work by Chris and Otavio Salvador.
Thanks also to the following people for their contributions: Thorsten Gunkel for lots of testing, Stephen Rothwell, Martin Schwenke, Gerhard Muntingh and Achim Dreyer for RPM support.
Last updated: 25 Feb 2005