我已经创建了一个rpm软件包,并且在安装它时我想用rpm软件包数据替换所有现有目录及其内容
比方说,我有一个名为config /的目录,其中包含一些配置文件(a.config,b.config等),现在a.config
已过时,我不再想要它了。因此,我创建了一个新的rpm软件包,其中包含a.config
以外的所有文件,但是安装软件包时,它会更新b.config
和目录中的所有其他文件,但不会删除或删除{{1} }。
我正在使用以下命令来安装rpm包
a.config
我只想保留软件包中包含的那些文件和目录,并删除其他文件和文件夹
答案 0 :(得分:1)
如果您的第一个rpm
软件包在a.config
部分中正确包含了%files
,并且没有被修改,并且没有在您的第二个版本的%files
部分中列出,则应在升级过程中将其自动删除。您的b.config
将是剩下的唯一文件,它是在安装第二个软件包时添加的。
a.config唯一保留的方法是,如果它从未在%files中列出。
答案 1 :(得分:0)
要回答我自己的问题,
在开始安装rpm软件包之前要执行的任何步骤,都需要在rpm规范文件的%pre
脚本中定义。
所以我写了
%pre
rm -f a.config
在我的规格文件中,它在开始安装rpm软件包之前删除了配置文件