FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > CentOS > CentOS

 
 
LinkBack Thread Tools
 
Old 04-22-2010, 09:18 PM
Steve Thompson
 
Default rpm -U query

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?

-steve
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 04-23-2010, 09:13 AM
James Hogarth
 
Default rpm -U query

On 22 April 2010 22:18, Steve Thompson <smt@vgersoft.com> 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?
>
> -steve
> _______________________________________________
> CentOS mailing list
> CentOS@centos.org
> http://lists.centos.org/mailman/listinfo/centos
>

Correct...

the order in an upgrade is...

new %pre
new %install
new %post
old %preun
old %files removed
old %postun

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...

See: http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html

James
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 04-23-2010, 09:16 AM
James Hogarth
 
Default rpm -U query

On 22 April 2010 22:18, Steve Thompson <smt@vgersoft.com> 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?
>
> -steve
> _______________________________________________
> CentOS mailing list
> CentOS@centos.org
> http://lists.centos.org/mailman/listinfo/centos
>

Err misread the question a bit there... The new binary will be there....

You can always copy the old binary in %pre to /tmp something to have
in %preun and then remove it afterwards...

%pre is before files get replaced...

James
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 

Thread Tools




All times are GMT. The time now is 07:55 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org