题 为什么我在更新后会有.rpmnew文件?


我用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

谢谢


14
2017-08-01 05:42






答案:


有两种情况:

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

参见例如 这张桌子 了解所有细节。

在这两种情况下你或某些程序 已编辑 配置文件,这就是你看到的原因 .rpmsave / .rpmnew 升级后的文件,因为如果本地文件不受影响,rpm将以静默方式升级配置文件而无需备份文件。

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


19
2017-08-01 13:04





有时包管理器对于修改文件的构成有点困惑。通常是因为某些程序或其他程序已经进行了修改(特别是那些TeX映射文件)。

我在处理这些类型的文件时会使用两种方法,具体取决于我的心情,系统的重要性以及我对该文件的了解程度:

  1. 系统运行好一段时间之后,只需删除那些我不认识的更改(可能很危险,但我的假设是,如果它是非常重要的东西,我现在已经注意到了。注意我只做这个在“低价值”系统上,如果我已经塞满了,我可以花一些时间来修理);
  2. 执行统一差异(diff -u <current file> <new/save version>)在文件的各个版本之间,检查输出并在版本之间集成必要的更改以使一切尽快,然后在我对事物感到满意时删除保存/新文件。更多的工作(虽然小的shell脚本来查找和区分文件有帮助)但几乎保证不破坏任何东西,除非我搞砸了合并。

10
2017-08-01 06:30