current directory during rpm post install phase

Patrick O'Callaghan pocallaghan at gmail.com
Fri Jun 20 13:52:39 UTC 2008


On Fri, 2008-06-20 at 13:15 +0200, Gianluca Cecchi wrote:
> I'm trying to install an rpm that has a post-install action.
> During this phase I notice with ps that a temporary script
> named /var/tmp/rpm-tmp.67318 is created and executed. 
> And its contents are the same as what stored inside the rpm (query
> done with rpm -qp --scripts package.rpm)
> Inside the postinstall script there is a call to another script
> (something.sh).
> In this latest script there is a test such as :
> 
>      if [ -f $file ]; then
>         cp -vf $file /some/dir
>         if [ $? -eq 0 ]; then
>           echo "$file copied sucessfully!!!"
>         fi
>      else
>         .....
>      fi
> 
> I want the script to find the $file so that it skips the "else"
> section.
> 
> $file is a filename without any path or prefix.
> 
> I have no source rpm.
> 
> So the question is: supposed that in /var/tmp/rpm-tmp.67318 and in
> something.sh there isn't any CD command, in which dir would happen the
> check about the presence of $file?

In the rpm process' current directory.

> it seems that if I place the file in the same directory where I run
> the "rpm -ivh package.rpm" command doesn't work...

Very likely rpm changes to a working directory when it starts up. You
could either look at the source of rpm, or run it under 'ltrace' and
look for calls to 'chdir'.

poc




More information about the users mailing list