Skip to content

Utility derived from createrepo to update an Yum Repository by just updating the sqlite DBs and ignoring the xml files.

Notifications You must be signed in to change notification settings

tootedom/updaterepo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

UpdateRepo

Utility derived from createrepo to update a yum repository by just updating the sqlite DBs and ignoring the XML metadata files.

Intention

If you want to create standard yum repositories createrepo is the tool of choice. The problem is that if you want to add new RPMs to your repository, createrepo reads in the XML metadata files and regenerates the sqlite DBs again instead of reusing them. This solution does not care about XML metadata (RHel 5.6 and newer does not need them) and just adds new packages to the sqlite DBs which is much faster. Also a cache directory is not required.

Installation

To use updaterepo you need the following dependencies:

  • yum : already installed on RHel / Centos. For debian:

    sudo apt-get install yum

  • createrepo :

    sudo [yum|apt-get] install createrepo

Usage

./updaterepo.py /path/to/your/repository

Performance

Delete Update Performance

Create a repository with 15 rpms (ca. 500kb per rpm) using:

createrepo --update -v -d --skip-stat -c /tmp/empty-cache-dir .

Remove 2 rpms:

rm blabla*.rpm

Update repository with createrepo:

time createrepo --update -v -d --skip-stat -c /tmp/empty-cache-dir .

real	0m0.406s
user	0m0.248s
sys 	0m0.090s

Same update with updaterepo.py

time updaterepo.py .

real	0m0.254s
user	0m0.172s
sys 	0m0.079s

Result: Nearly 40% faster.

About

Utility derived from createrepo to update an Yum Repository by just updating the sqlite DBs and ignoring the xml files.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%