PyRPM

The current location of the PyRPM project is at http://people.redhat.com/laroche/pyrpm/, http://sf.net/projects/pyrpm/ and http://freshmeat.net/projects/pyrpm/.

The newest version can be downloaded from http://people.redhat.com/laroche/pyrpm/download/.

Please send patches to Florian La Roche, Phil Knirsch and Thomas Wörner.

The cvs source code repository is automatically converted to a git repository at http://www.jur-linux.org/git/?p=cvs-pyrpm.git;a=summary. (This is experimental only.)


Overview

PyRPM is an experimental project to look at rpm package management. It is a python module and a collection of scripts that provide similar functionality as rpm, yum and co. It is written from ground up and is implemented only in python. It mainly deals with rpm packages, the rpm database rpmdb in /var/lib/rpm, comps.xml files and yum repositories (called repo data).

The reason for this project was to have a codebase with which we can test and verify rpm, rpmdb and yum itself and experiment with new features and implementations very quickly. Python is Red Hat's in-house defacto standard, so using python to do rapid prototyping was only logical.

The code itself is still very small and modular. We're constantly looking to improve the code, make it more production ready and remove duplicate functionality. Results from this project back to rpm and co are very important for us to improve the current available Linux tools and not rush with only adding another project for this. Next to working on good algorithms and sane implementations, most code is backed up with verify and testing scripts.


Warning

The PyRPM project is by no means meant to be a full replacement of rpm or yum. In its current state we feel confident that in general it won't break anything, but the code isn't production quality yet.

The check scripts can be safely used as they won't modify anything on your system, so feel free to use them at your convenience.

We personally have been using the yum replacement very extensively and even used it to update our own systems, but that's not even remotely a guarantee that it will work on your machine. It has only been run by a few people until now.

Using it to set up buildroots on the other hand should be very safe as this all happens in a very contained environment (sandbox principle).

Please let us know of any problems you encounter, if possible with some reproducible test cases so we can figure out what might have happened.


Features/Highlights

Over time quite a few nice things have come out of the project:


Requirements for PyRPM

This is required for PyRPM to work:

There are also optional dependencies like:

For x86 (32bit) we often see that e.g. pyrpmyum needs up to 300MB of memory. For current Fedora Core releases, python on x86_64 (64bit) needs nearly twice as much of memory, so you probably should have 1GB for your x86_64 machine to work smoothly.

PyRPM is currently spending most of its CPU and memory on the list of files that are stored within rpm packages. Those are needed for dependency resolution. Re-writing all in C could improve this again and also allow production usage of it. Another possibility would be to change the repodata to allow for reduced data sets and better algorithms.


Other PyRPM Project Pages


Last updated 19-Jun-2006 20:58:28 CEST