Version 4 (modified by skvidal, 10 years ago)

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