How To Manage Repositories


This tool lets you create lists of newer or older packages to pass to other commands. This is useful if you want to tag a specific set

of packages from a directory structure. Or if you want to remove older packages. It operates on the packages directly and compares the packages by their rpm epoch, version and release.


    repomanage -k2 --old /some/dir | xargs rm -f

That will list out the older packages in the directory /some/dir, however the -k2 tells it to keep 2 versions back.


This tool lets you download an entire remote yum repository or a set of remote repositories. It will also synchronize changes in a repository with a local directory.


Sync all packages from the ’updates’ repo to the current directory:

      reposync --repoid=updates

Sync only the newest packages from the ’updates’ repo to the current directory:

      reposync -n --repoid=updates

Sync packages from the ’updates’ and ’extras’ repos to the current directory:

      reposync --repoid=updates --repoid=extras

Sync all packages from the ’updates’ repo to the repos directory:

      reposync -p repos --repoid=updates

Sync all repositories into the 'localcache' directory (each repository in its own path):

      reposync -p localcache

Sync all repositories with plugins enabled (useful for the plugins which are required to access repositories):

      reposync -l 


If you've just made a repo and you want to verify that everything in that repo is accurate and functional you can run verifytree to check out all the repodata and packages.


$ verifytree /home/skvidal/tmp/empty-repoverifytree /home/skvidal/tmp/empty-repo/
Checking repodata:
  verifying repomd.xml with yum
  verifying filelists checksum
  verifying primary checksum
  verifying primary_db checksum
  verifying other_db checksum
  verifying other checksum
  verifying filelists_db checksum
Checking groups (comps.xml):
  verifying comps.xml with yum
  comps file missing or unparseable