升级时强制 RPM 检查物理文件

Force RPM to examine physical files when Upgrading

tldr;当 'upgrading' 带有 -U 的软件包时,是否可以强制 RPM 检查磁盘上的物理文件是否有更改?

现状:

  1. 安装 rpm a1
  2. 一个应用程序修改了 a1 中的文件。
  3. rpm -V a 显示正在修改的文件。
  4. 安装 rpm a2(使用 -U:升级)。这个 rpm 包含与 a1 大部分相同的文件(它是下一个版本,只有一些文件被更改)
  5. rpm -V a 表明只有一些文件没有恢复到 a2 rpm 中的状态。

我最好的猜测是 rpm 只将已安装的包 a1 中的文件的 md5 与包 a2 中的文件进行比较,只有当 md5 不匹配时它才会查看物理文件。 我如何强制 rpm 查看所有文件,就像 -V 一样?

修改文件的示例输出:

/ # rpm -V a
missing   c /xxx/config/xyz.ini
S.5....T c /xxx/config/foo.xml
S.5....T c /xxx/config/firmware/xx.cfw
S.5....T c /xxx/config/bar.txt
S.5....T c /xxx/config/bar.xml

rpm -qc 会列出它们。

您描述的行为是 RPM 规范文件中标记为 %config(noreplace) 的文件的正确行为。由于该营销向 rpm 表明该文件旨在由 user/sysadmin 修改,不应在软件包升级时自动替换。

我会检查这些文件是否在规范文件中以这种方式列出,以及这是否是这些文件的正确标记。