Tools for maintaining yum repositories
Install yum-utils
(edit: and createrepo
).
Since a yum repository is just a directory that you run createrepo(8)
against and serve over http, functions you mention like uploading, keeping old versions around etc can be done with your usual tools like the shell, ssh, rsync etc. Or are you after a kind of attractive web-based method of managing a repo? I'm not sure if one exists.
As for updating metadata automatically, perhaps just use cron? Really, if these are your own packages then you should have tested the rpm before placing it in the repo, so having something check automatically if a rpm is invalid might not be needed, but again a regular cron job with rpm --test
could tell you.
I'm probably missing some great tools but this has worked for me for our limited needs for years.
As Andrew says, createrepo is all you need.
Put your rpms in a dir, run createrepo on it whenever you add rpms. Expose this dir over http. Add this http url to compatible clients through their /etc/yum.repos.d/ directory .
I use mrepo to manage local yum repositories. It is a tool for mirroring repositories and in your case you could set it up to mirror a local directory containing your custom rpms.
http://pulpproject.org/