On Wed, 2009-01-07 at 16:23 +0100, Friedrich Clausen wrote:
Hello All,
At my $WORK we have lots of in-house applications used to support the services we offer to customers and we deploy these to servers as RPMS. This works well for us except we have thousands of obsolete packages in our Yum repository that need to be cleaned up. What I would like to achieve is to keep the latest version + the last 3 revisions of a package and delete the older revisions.
I was attempting to do this based on file timestamps but they are not reliable and in some cases packages were restored from backup in a way that did not preserve timestamps. So I am investigating writing a Perl script to do this but it is far from trivial due to the vast variety of version and release strings used. And there are certain situations in which the version strings are completely ambiguous (even to me) but, even if those have to be handled manually, then great time savings in cleaning up the rest automatically can still be achieved.
So, before I start (re)inventing this particular wheel, I thought I would check with the folks on this list since I cannot be the only person with this problem. Are there any ready to use tools available to trim down an overwheight RPM repository by deleting obsolete packages?
I've not done this but I saw no immediate reply. So I thought I'd pass on a thought that might be viable for you.
First, I wrote some scripts long ago that encountered the variability of versioning against source tarballs. So I _feel_ your pain. Unfortunately, those scripts are off line for now. Meaning: HDs are not in any system and not labeled so I can't quickly pull them up and pass them on to you. Sorry.
But here's my thought.
Why not just get a complete list and sort them down into a file. Then, using your editor-of-choice, delete the ones you want to keep. In a few hours or so, you should have a list of those to delete. Turn those into commands, like rpm --erase <full-versioned-package-name> and run it. Make sure you are well backed-up first, of course.
With typical expertise in a reasonably powerful editor, like vi(m), after the manual deletes from the file it should go quickly.
Many thanks!
Fred.
<snip sig stuff>
HTH