rpm spec仅根据系统标准安装某些文件

时间:2013-03-01 21:07:26

标签: bash sh rpm specifications

我有一个RPM I构建,它解压缩了我在三种不同类型的系统中使用的一堆脚本。我正在尝试添加第四种系统类型,它只需要在rpm中打包的文件的子集。有没有办法让%install部分只根据简单的检查安装一些有效负载。

之类的东西

(sudo code)

if systemtype eq "type4"; then
    install %file4
else
    install %file
fi

所有四个系统都运行相同的操作系统,单个RPM使我更容易将RPM提供给其他人供他们使用,所以我很乐意用一个软件包完成这项工作。

我知道我可以在%post部分执行此操作,但我需要删除的文件列表很长,所以如果可以,我想避免这样做。

2 个答案:

答案 0 :(得分:1)

使用单个RPM完成此任务不是一个非常好的计划。正如Marc所说,你可以像在其他任何地方一样编写shell脚本,但根据你的问题,这似乎是不合理的。在您的问题中,您解释说这个RPM进入一台机器,那么为什么不为这个特定系统打包一个RPM呢?在其他用户需要维持RPM的情况下,这降低了RPM复杂性,并且还减少了RPM上的膨胀。在短期内,单个RPM可能更容易,但从长远来看,多个RPM将是更好的解决方案。

答案 1 :(得分:0)

您可以让spec文件一次发出多个RPM文件。这称为"subpackaging"

如果你调整它们以匹配各种机器上给出的依赖关系,你可能会得到一定数量的软件包,可以根据它们的需要进行安装。

相关问题