Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Relocated path in a postinstall script

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, writing to /etc is not allowed ....

So I used Relocations in order to deploy the /etc files in some other location :

Relocations : /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 don't get replaced when the package is deployed :

echo `hostname --fqdn` > /etc/myapp/host.conf

I hope that there is a way (macro, keyword, ... ) to use instead of hard coded paths in order to perform the substitutions during rpm execution.

If you have any information on this I'd really appreciate some help.

Thanks per advance

PS : Please note that this is NOT a duplicate of the previously asked (and answered) questions related to the root path re-locations as we're dealing with several relocation paths and the fact that we need to handle each of them separately during rpm scriptlets

like image 260
devlearn Avatar asked Dec 05 '25 03:12

devlearn


1 Answers

Many thanks to Panu Matilainen from the RPM mailing list who answered the question. I'll re-produce his mail literally in order to share the knowledge :

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

Prefixes: /opt /etc

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,

/opt is $RPM_INSTALL_PREFIX0 /etc is $RPM_INSTALL_PREFIX1

So the scriptlet example becomes:

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

Works like a charm, thank you very much Panu !

like image 109
devlearn Avatar answered Dec 08 '25 14:12

devlearn



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!