Launchpad Entry: foundations-lucid-local-repo-support
Created: Michael Vogt
Packages affected: squid
An alternative to setting up squid and caching any .deb would be to make use of apt's own configuration options. It supports to change the path to package lists and caches at run-time! This way apt can be used to create package lists and caches that form local mirrors (on disk/same machine) or access the same package lists and cache over the local network (local mirror/cache). The path can also point to a removable medium (i.e. in absence of a LAN), which can be updated when it is plugged into online machines and used to install up to date packages on offline machines. Apt-medium is a simple shell script tool that shows how to do this and a little multi-machine package management tool too. (currently orphaned) http://wiki.debian.org/AptMedium
Several options exist for setting up a local mirror or cache of the Ubuntu archives (apt-mirror, debmirror, apt-cacher-ng, apt-proxy, approx...) but none of them is fully supported in main. Any site with more than 2 Ubuntu machines is likely to set up one of those, we should investigate options, promote to main and support the relevant one(s).
Having a recommended way to solve the mirror problem is useful for a lot of sysadmins that looks for a solution to this problem.
Karl is a sysadmin in a small office with 10 ubuntu machines. He wants to avoid wasting bandwidth for the clients that update and sets up a local proxy solution for this.
There are three areas that need investigation. Simple caching that should cover most cases when people are looking for bandwidth saving. A full/partial mirror that is useful only for a smaller subset of people. And finally repository management that is out of scope for this document.
- squid (squid.conf is the problem)
- apt-cacher-ng (not StevenK approved)
During the session people expressed concerns about all the available cache solutions with the exceptions for squid. Given that squid is already in main we should provide a squid configuration that is geared towards the deb caching use case. The biggest obstacle people had was the squid.conf file.
Action items for caching:
- write squid config wiki page
- package with squid config
- package with debconf questions and squid on different port
- pool/ is the problem
- debmirror (not StevenK approved)
- mirrorkit: front-end to debmirror (launchpad.net/mirrorkit)
apt-mirror (mostly StevenK approved and very useful for e.g. LoCo's installfest)
- rsync (in main)
The discussion on mirror solutions was inconclusive. Only rsync was approved by everyone, but its not useful for partial mirroring and complicated to use (lots of switches):
Action items for mirroring:
- point to rsync wiki page
- package rsync wiki page script
- investigate alternatives for main
Repo managment solutions
- debmarshal (looks promising)
- apt-move (not StevenK approved)
Action items for repository managment:
- package debmarshall (or encourage upstream to package it)
- package mirrorkit (already done, needs to be uploaded to universe
A more complete spec that also requires much more code: https://wiki.ubuntu.com/FoundationsTeam/Specs/KarmicInternalRepositoryManagement
BoF agenda and discussion
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.