updaterpmsAlthough there are now many tools to manage RPMs, most of them integrate with "rpm" through its command line interface. This has a number of problems, the most significant being that it is not possible to specify a number of RPMs to be installed and a number of RPMs to be removed, letting rpm work out the dependencies and ordering of the operations.
updaterpms uses rpmlib directly and can thus use rpm's transaction functions to order install and removal operations. The downside to this is that updaterpms is written in C, but now that there is a python interface to the transaction functions, it would be possible to rewrite updaterpms in python.
updaterpms has been used, since summer 1997, to manage the ~300 Linux machines in the Division of Informatics, University of Edinburgh. These Linux machines range from laptops through desktops to servers and all have more than 1000 RPMs installed.
Versions of updaterpms have been used, in anger, on Redhat 5.1, 5.2 and 6.2, though the current version as shipped has only been used on Redhat 6.2 with rpm-3.0.5.
Unfortunately, when RedHat added the transaction based functions to rpmlib, they removed the ability to specify per package flags such as "--noscripts". This functionality was heavily used in Edinburgh, so it was patched back into rpmlib. This means that updaterpms requires a patched version of rpm; the patch is included.
Alastair Scobie ajs@dcs.ed.ac.uk