[Yum-devel] Solving the yum mirror and update reporting problem.

Seth Vidal skvidal at fedoraproject.org
Wed Mar 3 04:28:00 UTC 2010



On Tue, 2 Mar 2010, Christopher Owen wrote:
> 
> I suggest a special repo server that takes as configuration repos, their priorities, and their enabled
> status.  It outputs a single repo based on this.  When a client requests a package, the server will check
> locally if it is available, otherwise will download the file to its cache and then serve it out.  When a
> client searches, it is presented with the total (flattened) metadata to search.

This last bit is the hard part b/c you'll need a special service to do it 
and even that won't guarantee that that server can get the file.

> 
> For reporting, yum-updated or some other application would need to check in with this repo periodically and
> supply the server with a list of installed packages.
> 
>  
> 
> It would then be simple logic to determine which machines require updates and produce reports from that
> (available via rss, email, a web interface, or whatever.)



There are two problems here:
1. you want all the local pkgs + all the remote pkgs except for the items 
you want to weed out b/c of your priorities settings
2. you want them all to appear to be in one repo


the first problem is just that what you want seems to be conflicting a 
bit. It's not impossible but as we discussed on irc it might be something 
like:
1. download all the pkgs you definitely want locally
2. merge all the repodata from all the repos
3. have them all point to the download/cache server you've described 
above.

I'm not quite sure how to implement the actual server there, though - you 
may want to look at how intelligent mirror did it.



> Additionally, I have had some trouble getting through the yum code base and bringing myself to a level
> where I can confidently bang this out.  And suggestions there would be much appreciated as well.

ping us on irc w/specific yum api questions - there are folks on there 
almost all the time who can help.

it seems like most of what you want above can be handled in 
createrepo/mergerepo actually.

-sv


More information about the Yum-devel mailing list