Getting realocated dir in the postinstall (or other) scriptlets ?

Panu Matilainen pmatilai at
Thu Jan 7 18:01:42 UTC 2016

On 01/07/2016 06:42 PM, cdr53x at wrote:
> Hi,
> I'm working on an RPM package that deploys files to /opt and /etc. In most of the cases it works perfectly, excepted that for a given environment, where writing to /etc is prohibited  ....
> So I used Relocations in order to deploy the /etc files in some other location :
>     Relocations : /opt /etc

I assume you mean (the above is how rpm -qi shows it though):

Prefixes: /opt /etc

> By specifying --relocate option I can deploy the /etc files into another location :
>     rpm -ivh --relocate /etc=/my/path/to/etc mypackage.rpm
> Now the issue is that in the postinstall script, there are some hard coded references to /etc that obviously don't get replaced when the package is deployed :
>     echo `hostname --fqdn` > /etc/myapp/host.conf
>     ( this is just an example )
> I hope that there is a way (keyword, ... ) to use instead of hard coded paths in order to perform the substitutions during rpm execution.

The prefixes are passed to scriptlets via $RPM_INSTALL_PREFIX<n> 
environment variables, <n> is the index of supported prefixes starting 
from zero. So in the above,


So the scriptlet example becomes:

     echo `hostname --fqdn` > $RPM_INSTALL_PREFIX1/myapp/host.conf

	- Panu -

> If you have any information on this I'd really appreciate some help.
> Thanks per advance
> _______________________________________________
> Rpm-list mailing list
> Rpm-list at

More information about the Rpm-list mailing list