在使用 RPM 安装时,rpm
是否yum
可以覆盖 RPM.spec
文件中通常定义的默认用户帐户?
我专门处理 Tomcat 8 的 RPM,并且想将服务用户帐户从 tomcat8 覆盖到其他帐户。
我怀疑如果不更改 RPM.spec
文件这是不可能的,但想看看是否有人知道如何做到这一点。
我见过的唯一方法是在安装后创建一个脚本来提示用户。
参考
答案1
从某种意义上说,您不可能向 rpm 提供参数,例如在安装自定义软件包时覆盖软件包中包含的值。但是您可以在 rpm 安装期间运行的 shell 脚本中添加逻辑,因此可以通过这种方式进行自定义。
Fedora 默认情况下通过一些 scriptlet 添加/删除用户,请参阅 fedora wiki 了解详细信息:https://fedoraproject.org/wiki/Packaging:UsersAndGroups有关 %post/%pre-scripts 和所有变体的一些一般信息,请参阅 Max RPM 书中的解释:http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html(“安装/擦除时脚本”部分)以及订购可能https://fedoraproject.org/wiki/Packaging:Scriptlet。有关一些更深入的详细信息,请检查http://wiki.networksecuritytoolkit.org/nstwiki/index.php/RPM_Quick_Reference
/etc/sysconfig/custom_defaults
因此,对于您的具体问题,您可以尝试从某些标准位置或类似位置读取用户名、组名、gecos 字段或其他内容的变量(应在目标系统上可自定义的值) 。这样,每个客户都可以对其进行配置,但您必须对变量进行一些健全性检查,并在未设置自定义默认值的情况下提供默认值,但这对于所有 shell 脚本来说都是相同的。