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.

partial mirror

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.

supported backends

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.


System requirements

Python version (1.9.x)

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.

Old stable version (1.3.6)

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.

Python version (1.9.x)

These versions are available from Debian unstable. See http://packages.debian.org/apt-proxy for the latest available version.

Old stable version (1.3.6)

Old stable version with apt4rpm support (


Documentation, README and FAQ

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:

Mailing list

Subscribe to apt-proxy-users

List archives


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

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.

apt-proxy clones

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.



















apt-proxy CVS Repository

There are now 2 branches in CVS:

You can access CVS like this:

cvs -d:pserver:anonymous@cvs.apt-proxy.sourceforge.net:/cvsroot/apt-proxy login

for version 2:

cvs -z3 -d:pserver:anonymous@cvs.apt-proxy.sourceforge.net:/cvsroot/apt-proxy co apt-proxy

or for version 1:

cvs -z3 -d:pserver:anonymous@cvs.apt-proxy.sourceforge.net:/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.

SourceForge Logo

Back to top

Last updated: 25 Feb 2005