Yum repo server as archive cache

Our software stack requires some specific versions of RPM packages. Unfortunately some of these packages become deprecated over time and get removed from their repos since their maintainers don't keep archives (EPEL, Percona, ...).

It is a problem in configuration management. We want to make sure we provision a new machine with the same software the old ones have (we use Puppet).

I guess the standard solution is hosting these packages in a private YUM repo we set up for our own. This is beneficial for packages we need to compile from source, too.

My question is: do you know of any "proxy tool" to a Yum repo server so that every agent downloads packages from there and the repo server downloads packages from the external, original sources then caches them locally? (In case they disappear from the original repo)

An analogy from Java world would be Archiva, which is a Maven repo server, but also can be used to proxy requests to public repos and cache them locally.

OS: Centos 6.4

Thank you


I think mrepo is a great tool for this. You point it at an upstream repository and it will mirror locally. The configuration option lftp-cleanup = no, rhnget-cleanup = no, etc, will prevent it from deleting packages from your local mirror when they are deleted upstream.

Dag's mrepo


Download the specific RPM versions you want. Create your own local repository containing only those packages you want. Point your clients to your new local repository. Stop using the public ones that do not behave how you want.

To get started:

yum -y install createrepo && man createrepo