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]