0

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

(须藤代码)

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

所有四个系统都运行相同的操作系统,并且单个 RPM 使我可以更轻松地将 RPM 提供给其他人以供他们使用,所以我很想用一个包来完成这项工作。

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

4

2 回答 2

1

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

于 2013-03-02T04:52:24.893 回答
0

您可以让您的规范文件一次发出多个 RPM 文件。这称为“子包装”

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

于 2013-03-02T09:02:16.777 回答