I run a server that has updates of RPMs I build for our lab. The packages directory is getting too big and fat with 10 or 15 versions of some RPMS. I wonder if somebody has a script that can clean out the older versions? Something that cooperates with the createRepo script?
pj
Paul Johnson wrote:
I run a server that has updates of RPMs I build for our lab. The packages directory is getting too big and fat with 10 or 15 versions of some RPMS. I wonder if somebody has a script that can clean out the older versions? Something that cooperates with the createRepo script?
I've used the repomanage tool to do this. Something like this for one of my local repositories:
repomanage --old $repo | while read package; do dir=$(dirname "$package") archive="$topdir/archive/$(basename $repo)" [ ! -d $archive ] && mkdir -p $archive mv "$package" $archive done
You might also find some useful snippets in the scripts used to push Fedora Extras packages (particularly RepoPrune.py):
http://cvs.fedora.redhat.com/viewcvs/extras-buildsys/utils/pushscript/?root=...
On Fri, 2007-02-09 at 14:34 -0500, Todd Zullinger wrote:
I've used the repomanage tool to do this. Something like this for one of my local repositories:
repomanage --old $repo | while read package; do dir=$(dirname "$package") archive="$topdir/archive/$(basename $repo)" [ ! -d $archive ] && mkdir -p $archive mv "$package" $archive done
This is great, but how would one keep the nightly rsync against the yum mirror from downloading again all of the RPMs that were pruned from the local repo? I looked through the rsync man page, but I didn't see anything obvious that would apply here.
Regards,
Ranbir
Kanwar Ranbir Sandhu wrote:
On Fri, 2007-02-09 at 14:34 -0500, Todd Zullinger wrote:
I've used the repomanage tool to do this. Something like this for one of my local repositories:
repomanage --old $repo | while read package; do dir=$(dirname "$package") archive="$topdir/archive/$(basename $repo)" [ ! -d $archive ] && mkdir -p $archive mv "$package" $archive doneThis is great, but how would one keep the nightly rsync against the yum mirror from downloading again all of the RPMs that were pruned from the local repo? I looked through the rsync man page, but I didn't see anything obvious that would apply here.
The official yum repos are pruned already. You shouldn't need to reprune them yourself. There is a suggested rsync invocation for mirroring Fedora content at:
http://fedoraproject.org/wiki/Infrastructure/Mirroring
It is:
rsync -vaH --exclude-from=${EXCLUDES} --numeric-ids --delete \ --delete-after --delay-updates \ rsync://download.fedora.redhat.com/fedora-enchilada ${LOCAL_DIR}
See the wiki page for more details.
If that doesn't exclude everything that you want, you can use an exclude file. You could even populate that file with the results of the repomanage output I suppose. But I don't think that is generally necessary is you mirror things like the wiki suggests. The repomanage snippet above is what I use on my person repository of packages I create locally.