I have mechanisms for cloning RPM repos from the 'net. But what I really want is a way to clone PART of a repo. So far I haven't found any such existing mechanism.

Here's the requirements:

  • We have a local cache of all official RHEL RPMs and updates from official upstream sources. We need to occasionally add target RPMs from a trusted third party on the 'net. Given a target package at a given repo, copy the latest and greatest version of the target RPM to our cache.
  • Additionally, determine all dependencies for that RPM and (here's the tricky part) if the dependencies DO NOT already exist in our local repo cache pull the missing dependencies.

The reason for the second requirement is that we only want the absolute minimal infection from outside sources in our local cache of RPMs. We want to run as much of the official RHEL RPMs as we can and only augment as needed. The problem with blindly cloning an entire third party RPM repo is that sometimes they re-write official packages or add newer versions of official packages. And unless those versions are direct dependencies for our target package, we do not want to those packages in our local repo cache.

The real issue is that none of the existing clone tools (mrepo is the primary example) is they blindly copy the entirety of a repo. We don't want that for cherry picking. If you then try to use yumdownloader or such, you find that it DOES look for dependencies but it only compares against INSTALLED PACKAGES on the current server. You can't tell yumdownloader to compare against a local package repo.

Are there any suggestions on existing tools that can help me?


Cobbler allows partial repo mirroring, check rpm-list option, section 'REPOSITORIES' in its man page. But I'm not sure about its ability to retrieve dependencies.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.