安装rpm软件包后,替换现有目录及其所有内容

时间:2019-06-06 09:32:38

标签: rpm rpmbuild

我已经创建了一个rpm软件包,并且在安装它时我想用rpm软件包数据替换所有现有目录及其内容

比方说,我有一个名为config /的目录,其中包含一些配置文件(a.config,b.config等),现在a.config已过时,我不再想要它了。因此,我创建了一个新的rpm软件包,其中包含a.config以外的所有文件,但是安装软件包时,它会更新b.config和目录中的所有其他文件,但不会删除或删除{{1} }。

我正在使用以下命令来安装rpm包

a.config

我只想保留软件包中包含的那些文件和目录,并删除其他文件和文件夹

2 个答案:

答案 0 :(得分:1)

如果您的第一个rpm软件包在a.config部分中正确包含了%files,并且没有被修改,并且没有在您的第二个版本的%files部分中列出,则应在升级过程中将其自动删除。您的b.config将是剩下的唯一文件,它是在安装第二个软件包时添加的。

a.config唯一保留的方法是,如果它从未在%files中列出。

答案 1 :(得分:0)

要回答我自己的问题,

在开始安装rpm软件包之前要执行的任何步骤,都需要在rpm规范文件的%pre脚本中定义。

所以我写了

%pre
rm -f a.config

在我的规格文件中,它在开始安装rpm软件包之前删除了配置文件