我正在将 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
在发布(或软件包)升级期间,软件包管理器通常会为您提供几个选项:
- 保留您的版本。
- 保留软件包维护者的版本。
- 显示差异。
- 进行(实验性的)三方合并。
- 打开一个 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,否则您应该保留该文件。