Bart Whiteley wrote:
Wolfgang Rosenauer wrote:
Hi,

Dan Stromberg schrieb:
However, now I'm finding that I can repeatably:

1) Install 3.1.0.0 of the rpm
2) -Uvh 3.1.0.3 of the rpm
3) The files under the original hierarchy disappear.  The files under
the secondary hierarchy become present.  My %post that copies files
from the secondary hierarchy to the original hierarchy doesn't seem
to be getting run
4) -ivh 3.1.0.3 of the rpm
5) The files under the original hierarchy become present.  It seems
that my %post is getting run

It seems like %post is only happening on -ivh, not on -Uvh, even
though the maximum rpm book says that -Uvh is basically just a -e and
-ivh.

Has anyone seen anything like this before?  Is there a fix?
rpm -U is not the same as rpm -e and rpm -i.

That is what's done with -U:

    * Run %pre of new package
    * Install new files
    * Run %post of new package
    * Run %preun of old package
    * Delete any old files not overwritten by newer ones
    * Run %postun of old package


Wolfgang is correct.  In your %preun and/or %postun, you need to check
the value of $1 to determine if rpm was called with -e or -U.  This is a
good resource:
http://www.ibm.com/developerworks/library/l-rpm3.html

Thanks folks, this is really informative.

One of our rpm's needs (sort of :) to be able to replace some files in /etc. Rather than have two rpm's owning the same files, I chose (based on input from this list) to make this rpm put the files in /susev3_etc, and then have a %post copy the files from /susev3_etc to /etc. This was done because having two rpm's owning the same file yields undefined behavior.

But we have systems in the field that still have files going directly into /etc from an rpm of the same name but older versions.

I now suspect that what's happening is, when going from an old version of this rpm to a contemporary version:
1) the new rpm's files are installed
2) the new rpm copies from /susev3_etc to /etc
3) the old rpm's files are installed, _taking_the_copies_under_/etc_from_/susev3_etc_with_them_

...and I further suspect that once we get all our systems moved to the new /susev3_etc way of getting files under /etc, that these /etc files won't disappear anymore. It seems like it's just when moving from the old way of handling /etc to the new way, that we lose these /etc files - not when moving from a new-way rpm to a newer new-way rpm. But I haven't tested that.

I wonder if I could have this rpm "foo" use a "%triggerun -- foo" scriptlet so that I get a chance to put back those files when the old version of the rpm is deleted. It appears that triggers are usually done to catch when some _other _rpm is uninstalled (for example) - I'd be using it for when some other version of the _same_ rpm is uninstalled.

Comments?




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to