Red Hat Bugzilla – Bug 110905
[RFE] Multiple transactions on multiple packages
Last modified: 2007-11-30 17:10:34 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1)
Description of problem:
The current version of rpm (rpm-4.2.1) can not handle multiple
operations on multiple packages in a single transaction. Just imagine
that you want to install 'foo' and 'bar' RPMs replacing another RPM
called 'foobar'. How can I order the operations respecting
dependencies, validate, and execute the complete operation in one go?
This is currently not possible in RPM (an 'rpm -e --test foobar'
followed by 'rpm -i --test foo bar' does evidently not work).
It would be very nice to extend rpm to handle lists of transactions.
We propose to change the rpm CLI to do something like:
rpm -U package_1.rpm -e package_2
Version-Release number of selected component (if applicable):
Created attachment 96182 [details]
example of the desired funtionality
rpmt is a tool to install, upgrade and erase RPM packages in one transaction,
thus allow package sets with complex dependencies to be processed at once while
keeping the system in a consistent state.
'rpmt' is part of the QUATTOR toolsuite, which is being used for
managing large Computer Centres in the High Energy Physics community,
including CERN, totalizing thousands of nodes. As Rafael points out,
the only purpose of 'rpmt' is to expose an existing RPMlib
functionality to the command line.
We would really like to get rid of this tool as it is duplicating work
which could be done by 'rpm' - in fact, it just adds a new option. It
is a pain to have to recompile and adapt 'rpmt' everytime a new rpm
release comes along, just for one missing option.
We do believe that adding this functionality to the 'rpm' command line
instead would be a minor effort, and would enhance the capabilities of
rpm significantly, as checks and operations like "install X, remove Y,
and upgrade Z" could be performed transactionally in one step. All
this, without changing RPMlib.
Do you think you could have a look to this problem?
Postion sensitive command line options like -U foo -e bar will not be added to rpm, there are
far far too many options other than mode selection that would need to be handled.
Meanwhile, what I proposed years ago (see the rpm-list archives or iirc the apt-rpm archives) will be to
add a prefix of '+' or '-' to indicate upgrade or erase. For added measure, '=' will be equivalent to a --
aid depsolver goal.
The work is largely completed in the lib/rpmgi.c in rpm-4.4.1. The last missing peice is
to teach rpmgi how to create a local rpmdb for --aid depsolving.
Perhaps there's still time/energy to get this into rpm-4.4.3. We'll see ...
This has been rejected upstream with good reason. Plus there is a workaround
available within CERN. Therefor this will not be ACKed for RHEL.