为什么更新后有.rpmnew文件?


17

我用yum更新我的Fedora。一个巨大的更新后,我得到了很多.rpmnew.rpmsave文件。我可以理解是否修改了这些文件。但是我确定我没有编辑这些文件。

这些文件该怎么办?下次更新会怎样?

以下是这些文件的示例:

/usr/share/texmf-var/fonts/map/dvipdfm/updmap/dvipdfm_dl14.map.rpmnew
/usr/share/texmf-var/fonts/map/dvipdfm/updmap/dvipdfm_dl14.map.rpmsave

谢谢

Answers:


22

有两种情况:

  • 如果文件是作为rpm的一部分安装的,则它是一个配置文件(即标有%config标记),之后您已经编辑了该文件,现在您更新了rpm,则新的配置文件(来自更新的rpm)将被替换您的旧配置文件(即成为活动文件)。后者将使用.rpmsave后缀重命名。
  • 如果文件是作为rpm的一部分安装的,则它是一个noreplace-config文件(即标记有%config(noreplace)标记),之后您已经编辑了该文件,现在您更新了rpm,那么旧的配置文件将保留在原位置(即保持活动状态),新的配置文件(来自新的rpm)将被复制到带有.rpmnew后缀的磁盘上。

有关所有详细信息,请参见此

在这两种情况下,您或某些程序都编辑了配置文件,这就是为什么升级后会看到.rpmsave/ .rpmnew文件的原因,因为如果本地文件未触及rpm,rpm将以静默方式升级配置文件,而没有备份文件。

系统升级后,最好在文件系统中扫描这些文件,并确保正确的配置文件处于活动状态,并可能将.rpmnew文件中的新内容合并到生产文件中。完成后,您可以删除.rpmsave.rpmnew文件。


10

有时,程序包管理器对于是否构成已修改文件感到有些困惑。通常是因为某些程序或其他程序进行了修改(尤其是那些TeX映射文件)。

在处理这类文件时,有两种方法,具体取决于我的心情,系统的重要性以及对相关文件的了解程度:

  1. 在系统正常运行一段时间后,只需删除我不知道已更改的内容即可(可能很危险,但我的假设是,如果这确实很重要,我现在会注意到。请注意,我只做这是在“低价值”系统上的,如果我塞满了,我可以花一些时间修复);
  2. diff -u <current file> <new/save version>在文件的各个版本之间执行统一的diff(),检查输出并集成版本之间的必要更改以使所有内容都达到最高速度,然后在感到满意时删除保存/新文件。还有很多工作(尽管使用小的shell脚本来查找和比较文件会有所帮助),但是可以保证不会破坏任何内容,除非我对合并进行了修改。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.