From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031008 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): rpm-4.2.1 How reproducible: Always
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.
Dear Jeff, '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? Many thanks! cheers, German
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.