我通过RPM提交申请
我需要做的是,如果用户卸载应用程序(rpm -e
),以便有机会备份一些安装的应用程序文件。
另外在(post)安装之后,我希望用户有机会用他在之前的卸载过程中保存的文件替换一些安装文件。
要做到这一点,我想要制作一个互动的RPM
但它没有用。谷歌搜索我发现一些命令,例如在RPM规范中以某种方式忽略read
并且另外获得交互式输入的想法
来自用户不赞成,不推荐。
我的问题是,我真的在这里采取了错误的做法吗?我应该采用不同的方式吗?怎么样?我想不出有关这个具体问题的另一种解决方案。
有任何帮助吗?
答案 0 :(得分:2)
在取消/安装RPM时与用户交互不是一个好习惯。其背后的理念是RPM应该能够自动卸载/安装,例如,通过YUM安装时。如果必须,您有几种选择:
最佳:创建一个脚本,从用户那里获取所有信息,并将其写入文件。在RPM先决条件中,验证该文件是否存在。
可选:将RPM嵌入到与用户交互的bash脚本中,提取RPM并运行它。我相信Java RPM会让你接受EULA。
不是一个好主意:我在某处读过RPM从/ dev / tty读取的内容,因此您可以尝试在%pre或%post的开头添加exec 0</dev/tty