Re: Transaction Set clean does not actually clean
Mitko Haralanov <[email protected]> Fri, 7 Dec 2007 15:26:16 -0800
| Newsgroups | gmane.linux.redhat.rpm.python |
|---|---|
| Organization | QLogic Corporation |
| Message-ID | <[email protected]> |
On Fri, 7 Dec 2007 18:08:42 -0500 Jeff Johnson <[email protected]> wrote: > OK, so you want ts.clean() to "work". > > Translating python -> C, the binding is just a wrapper onto > rpmtsClean(). > > Why do you think rpmtsClean is not "cleaning", as in removing > all the references from the transaction set to the transaction elements > (aka packages) in the transaction set? First off, let me say that I agree with you that getting this to work the way I am going about it is swimming against a current! However, I went that route because I can't seem to get ts.clean() to "work". I looked at the C code for the Python module and, yes, rpmtsClean should be doing the right thing. However, I believe it isn't: I have an application that creates an instance of my rpm wrapper class and sits there waiting for "commands". If I ask the application to install a set of rpms (which it does successfully) and then, at a later time, ask it to install a new version of the previous set, I get TransactionSet conflicts because the TransactionSet is attempting to install the same files from two different versions of the same rpm (in the same transaction). In other words, I get the same error that I would get if I try to do the following on the command line: rpm -Uv rpmA-1.2.rpm rpmA-1.3.rpm The only way that this could be happening is if the ts.clean() which is done after every "install" command doesn't actually clean the TransasctionSet. On a different note: is there a way that I could print out the content of the current TransactionSet before I run the run() method? That way, I could verify whether I really have stale transactions. Thanks for all your help! -- Mitko Haralanov [email protected] Senior Software Engineer 650.934.8064 System Interconnect Group http://www.qlogic.com ========================================== Say "twenty-three-skiddoo" to logout.