rpm -U query
On 22 April 2010 22:18, Steve Thompson <firstname.lastname@example.org> wrote:
> CentOS, RHEL, all versions.
> Suppose I am upgrading a package foo-1.0 to foo-2.0 (assume foo is not
> relocatable), and both packages have %preun sections in their .spec files.
> It appears that foo-1.0's %preun is run after foo-2.0 has been installed.
> So what happens if foo-1.0 needs to run a binary that was provided as part
> of foo-1.0 during its %preun stage, and a binary of the same name is
> provided with foo-2.0? The installed binary is now foo-2.0's, right? So
> how to run foo-1.0's binaries during its %preun stage? Is the old binary
> available under a different name before it gets erased?
> CentOS mailing list
the order in an upgrade is...
old %files removed
Check the rpm spec documentation online for the specific details but
the four % scripts have a single argument supplied to them which you
can test. It is a numerical value equivalent to the number of times a
package appears in the RPM database after the package is
installed/erased at that point.
So on a fresh install....
%pre $1 = 1
%post $1 = 1
%preun and %postun unused
On an upgrade...
%pre $1 = 2
%post $1 = 2
%preun $1 = 1
%postun $1 = 1
On a remove....
%pre and %post not used
%preun $1 = 0
%postun $1 = 0
If you have an old package without tests and you are concerned that
the scripts will conflict with each other you can always do...
rpm -e --nodeps <pacakage>
rpm -i <package
That will remove and install in an order you might prefer for the
scripts until they are fixed...
CentOS mailing list