发布升级时是否需要替换定制的配置文件?

发布升级时是否需要替换定制的配置文件?

我正在将 ubuntu 从 13.10 升级到 14.04,升级过程中它会询问以下问题:

替换定制的配置文件‘/etc/sysctl.conf’?

如果您选择用较新版本替换此配置文件,您将丢失对此配置文件所做的所有更改。

文件之间的区别:

--- /etc/sysctl.conf  2014-04-21 21:38:34.970070205 +0530

+++ /etc/sysctl.conf.dpkg-new 2013-04-01 07:55:31.000000000 +0530
@@ -1,6 +1,6 @@
 #
 # /etc/sysctl.conf - Configuration file for setting system variables
-# See /etc/sysctl.d/ for additional system variables
+# See /etc/sysctl.d/ for additional system variables.
 # See sysctl.conf (5) for information.
 #

@@ -58,7 +58,3 @@
 # Log Martian Packets
 #net.ipv4.conf.all.log_martians = 1
 #
-# disable ipv6
-net.ipv6.conf.all.disable_ipv6 = 1
-net.ipv6.conf.default.disable_ipv6 = 1
-net.ipv6.conf.lo.disable_ipv6 = 1

我不明白这是什么意思,我尝试用谷歌搜索答案,但每篇帖子对同一个问题都有不同的文件名,而且答案也各不相同。我应该保留文件还是替换它?

答案1

在发布(或软件包)升级期间,软件包管理器通常会为您提供几个选项:

  1. 保留您的版本。
  2. 保留软件包维护者的版本。
  3. 显示差异。
  4. 进行(实验性的)三方合并。
  5. 打开一个 shell。

使用 (1) 和 (2) 时,不会丢弃任何文件。使用 (1) 时,软件包维护者的版本将使用扩展名 保存dpkg-dist,而使用 (2) 时,您的版本将使用扩展名 保存dpkg-old。您使用的是 (3)。我从未使用过另外两个,希望有人能来回答。

我个人总是选择(1),然后在升级后手动合并更改(如果它们值得的话) - 尽管我认为(5)可以用来执行此操作。

请注意出现此提示仅有的如果文件是在包管理系统之外修改的(即由像您这样的用户修改)。因此,这些更改可能是您出于某种原因而做出的,并且通常您仍希望保留这些更改。

答案2

在过去的几天里,我一直在将系统从 12.10 升级到 13.04 -> 13.10 -> 14.04.1LTS,每天升级一次,直到最后阶段它才抱怨 sysctl.conf。我认为发生的事情是,在 13.10 到 14.04 之间,有人在其中一条评论的末尾加了一个句号!这足以让它开始抱怨。

正如 muru 的回答所说,我选择保留那里已有的内容(就我而言是net.ipv4.conf.eth0.arp_notify = 1,我假设是 Rackspace 放在那里,因为上面的评论提到了 xen)。

答案3

这是比较前后文件的差异输出。

新文件中添加的行标记为 +,删除的行标记为 -。以 ' ' 开头的其他行仅用于上下文。

具体来说,这意味着:

-# See /etc/sysctl.d/ for additional system variables
+# See /etc/sysctl.d/ for additional system variables.

旧版本在注释末尾没有句号,而新版本有。太琐碎了。

-# disable ipv6
-net.ipv6.conf.all.disable_ipv6 = 1
-net.ipv6.conf.default.disable_ipv6 = 1
-net.ipv6.conf.lo.disable_ipv6 = 1

旧版本有关于禁用 ipv6 的行(https://en.wikipedia.org/wiki/IPv6如何在 Ubuntu 14.04 中禁用 IPv6?) 新的没有这些线。

除非您想启用 IPv6,否则您应该保留该文件。

相关内容