安装 rpm 包时替换现有目录及其所有内容
Replace existing directory and all of its content when rpm package is installed
我创建了一个 rpm 包,在安装它时我想用 rpm 包数据替换所有现有目录及其内容
假设我有一个名为 config/ 的目录,其中包含一些配置文件(a.config、b.config 等),现在 a.config
已被弃用,我也没有想要它了。所以我创建了一个新的 rpm 包,其中包含除 a.config
之外的所有文件,但是当我安装该包时,它会更新 b.config
和目录中的所有其他文件,但它不会删除或删除 a.config
.
我正在使用以下命令安装 rpm 包
rpm -Uvh --force package.rpm
我只想保留包中包含的文件和目录,删除其他文件和文件夹
回答我自己的问题,
无论你想在 rpm 包安装开始之前执行什么步骤,你都需要在 rpm spec 文件的 %pre
脚本中定义。
所以我写了
%pre
rm -f a.config
在我的规范文件中,它在 rpm 包安装开始之前删除了配置文件
如果您的第一个 rpm
包在 %files
部分中正确包含 a.config
,并且它保持原样,并且没有在您的第二个版本的包中列出 %files
部分,那么它应该在升级过程中自动删除。您的 b.config
将是唯一保留的文件,是在安装第二个软件包期间添加的。
保留 a.config 的唯一方法是,如果它从未与 %files 一起列出。
我创建了一个 rpm 包,在安装它时我想用 rpm 包数据替换所有现有目录及其内容
假设我有一个名为 config/ 的目录,其中包含一些配置文件(a.config、b.config 等),现在 a.config
已被弃用,我也没有想要它了。所以我创建了一个新的 rpm 包,其中包含除 a.config
之外的所有文件,但是当我安装该包时,它会更新 b.config
和目录中的所有其他文件,但它不会删除或删除 a.config
.
我正在使用以下命令安装 rpm 包
rpm -Uvh --force package.rpm
我只想保留包中包含的文件和目录,删除其他文件和文件夹
回答我自己的问题,
无论你想在 rpm 包安装开始之前执行什么步骤,你都需要在 rpm spec 文件的 %pre
脚本中定义。
所以我写了
%pre
rm -f a.config
在我的规范文件中,它在 rpm 包安装开始之前删除了配置文件
如果您的第一个 rpm
包在 %files
部分中正确包含 a.config
,并且它保持原样,并且没有在您的第二个版本的包中列出 %files
部分,那么它应该在升级过程中自动删除。您的 b.config
将是唯一保留的文件,是在安装第二个软件包期间添加的。
保留 a.config 的唯一方法是,如果它从未与 %files 一起列出。