Discovered the existance of the --test option and thought this was a great time to try it. I think it's a bit poorly documented, or the error messages could be made clearer. Grabbed a whole bunch of files to install (October Gnome). Put them in one directory. Ran rpm -U --test *.rpm and it told me, "Blah: already installed" for half a dozen where it turned out I already had the latest version. I didn't realise, but as a result of that, it meant rpm decided it wouldn't upgrade any of them, so I went ahead with rpm -U *.rpm and thought all had been upgraded until I later checked something with rpm -qi and began to wonder. I expect this would have been picked up by using -Uvh, but from the Maximum RPM book it looks like the --test option will tell you things like that, so I didn't use it. When doing rpm -U *.rpm in a directory, I don't think saying "Package blah is already installed, package bleurgh is already installed" and saying nothing about the others is a very obvious prelude to "So I'm not going to install any of the rest". I'm more used to the idea in unix that if nothing is said, it (probably...) worked. The Max RPM book, for -i --test, says (in section 2.4.2) that where there's problems with a package in a group, you get the error messages for each one, and then a one-line summary at the end. It then, in the section about upgrading, says "If it's not discussed here, then the behaviour is the same as for -i". And says quite plainly that the --test option is the same. But for -U --test, you don't get the one-line summary at the end. Having a one-line summary of "couldn't upgrade some so didn't upgrade any" when given a bunch of files to upgrade would be nice, especially for the --test option, which is presumably supposed to warn you of this kind of thing. It's not obvious to a new user. Telsa
Attempting to install all packages as a single atomic (i.e. all or none) "transaction set" is a feature of rpm-3.0.x that's not documented in "Maximum RPM". While the effect may be surprising, it's not clear to me that adding Yet Another Error Message is the best way to handle this. An updated version of "Maximum RPM" seems preferable.