Skip to main content
7 events
when toggle format what by license comment
Aug 27, 2013 at 19:40 comment added James Antill Yum gets it's data from rpm, and rpm itself runs the entire transaction. There were certain cases in older versions (RHEL-5 only now, IIRC) where it wouldn't propagate pre. scriptlet errors to the command return code ... but that doesn't affect what is installed/etc.
Aug 27, 2013 at 5:26 comment added Shimi So, I'll keep waiting for someone to come with the magic flag for yum ;) Meanwhile I solved the problem by doing in %pre of every package what yum should have done itself. But would still be happy to find out the right way to do this, given that there is one.
Aug 27, 2013 at 5:23 comment added Shimi Actually, RPM is not the problem; RPM behaves fine for me. It's YUM that wraps RPM that doesn't work as one might expect... it simply assumes that every package is installed successfully... which is, IMHO, funny. Why run "Transaction Test" in the first place? Let's just assume it will work. The 'hostname' has no reason to change after install. What I want is to avoid the default (localhost) - as one of my deps (would you believe?) refuses to initialize if the name is 'localhost', because it's a clustered app, and it wants a unique name on every node, that cannot change during the cluster life.
Aug 26, 2013 at 19:28 comment added James Antill Right, I understand ... you want dynamic deps. (Eg. run script X, and it tells you if there is a conflict or not. What I'm saying is: That doesn't work in rpm. All the deps. (Eg. requires or conflicts) have to be known before the transaction starts, so you can't change them in a scriptlet and you can't have them be dynamic (Eg. based on hostname). Note esp. that for the dynamic deps. problem, even if there was a way to do it ... what do you do when the hostname if "blah", the transaction/install happens, and then the hostname is changed to "localhost". This is the most obvious problem.
Aug 22, 2013 at 17:24 comment added Shimi To clarify further: Those packages can all be installed at the same time. There's no actual conflict here - just a case in which I don't want ANY package installed if criteria is not met. If the runlevel example wasn't good enough, here's one that is good: I don't want the hostname to be localhost, as this will mess up the cluster initialization I'm going to do during one of those RPM installations. Hence, I want that if the hostname is localhost, nothing will get installed and thus initialized.
Aug 22, 2013 at 17:22 comment added Shimi Add conflicts during a transaction in order to fail future packages? Not sure I understand. I know it doesn't work (I wouldn't have asked the question if it did work in the first place ;)) - my question is how exactly do you cause Yum to stop. For now (since nobody replied here thus far), what I did was to simply write a 'blocking' file if any of the tests fail, and have all the other packages that depends on the meta package, test for the existence of that blocking file, and if it exists, abort themselves at the %pre stage too. However, that's work-around-ing the problem, not a solution.
Aug 22, 2013 at 14:08 history answered James Antill CC BY-SA 3.0