Linux – %post section of rpmbuild not working

linuxredhatrpmunix

Situation: I'm trying to build a custom rpm to place a config file in a particular location. The installation completes fine by placing config files in proper directories but the %post section is not working. This section echoes user to make an input and 'reads' it. This read value is to be placed in those config files with help of 'sed'.

Issue: 'read' is not working in the %post section ie. the installation process does not wait for user to provide input. It basically completes the installation by placing files in the directories. In short, the %post section is not being interactive for user to provide input.

Please see the SPEC file here: http://pastebin.com/5BgkJUpG . This will help to get the idea.

I wrote the exact same lines of %post section above for "postint" section of building a .deb package and it worked fine there. User installing the deb package was able to make the input and this given value was placed in the config file with 'sed'.

Best Answer

I don't believe that RPMs were intended to be able to be ran interactively. You're making a couple of dangerous assumptions in that the RPM is not being installed by configuration management in an automated way or a GUI front end. Neither scenario bodes well for an RPM that expects input from the shell.

Maybe I can suggest an alternative? Is this prompt for the hostname of the target host? I.E. could your sed include $(hostname) rather than getting input from stdin?

I found this reference to someone attempting the same. Their suggestion was to get the input in %pre some how?