After setting up apt-cacher on our home server and setting all our other computers to use it as a proxy caching service, we found that apt-get update and Update Manager always fails while fetching Translations.
Get:5 http://au.archive.ubuntu.com intrepid/main Translation-en_AU [2734B] Ign http://mirror.files.bigpond.com intrepid/restricted Translation-en_AU Err http://mirror.files.bigpond.com intrepid/universe Translation-en_AU Error reading from server - read (104 Connection reset by peer)
According to the debian-bugs-dist, Bug#517761:
apt-cacher: Translation-en_US.bz2 fails when LANG on client not equal to LANG on server
To avoid this problem, you can run apt-get update and pass the LANG variable to it:
sudo LANG=C apt-get update
As a single apt-cacher service can handle requests for multiple apt based distros, it seems odd that it will not cross the LANG barrier and so I had a go at seeing what could be done to stop apt updates from failing.
Not wanting to try and configure every computer to avoid this error, I decided to look on the server for the apt-cacher config file and the very last section looked interesting.
/etc/apt-cacher/apt-cacher.conf
# Permitted Index files - this is the perl regular expression which matches all # index-type files (files that are uniquely identified by their full path and # need to be checked for freshness). #The default is: #index_files_regexp = (?:Index|Packages\.gz|Packages\.bz2|Release|Release\.gpg|Sources\.gz|Sources\.bz2|Contents-.+\.gz|pkglist.*\.bz2|release|release\..*|srclist.*\.bz2|Translation-.+\.bz2)$
By un-commenting and editing the last line, we can tell apt-cacher that Translation index files are not permitted:
index_files_regexp = (?:Index|Packages\.gz|Packages\.bz2|Release|Release\.gpg|Sources\.gz|Sources\.bz2|Contents-.+\.gz|pkglist.*\.bz2|release|release\..*|srclist.*\.bz2)$
I am unsure of the implications that may arise by not permitting apt-cacher Translation index files, but so far apt-get update and update manager are no longer complaining.