本质上,我正在使用这答案是对应用程序有非交互式体验,例如dpkg
,apt
以及可能依赖于前者的其他应用程序。
但问题是,这两个标志一起使用时是否有冲突?
我这么问是因为,据我了解:
apt-get -o Dpkg::Options::="--force-confdef"
使用默认设置(取决于软件包,我相信有些会替换旧配置,有些会保留旧配置,除非我弄错了)
和
apt-get -o Dpkg::Options::="--force-confnew"
保留新配置...
因此,我有点困惑为什么某些来源提到其中两个标志,即使它们可能会或可能不会相互冲突(尝试过它们,但不知道会启动任何包,debconf
除非我运行dist-upgrade
并等待正确的包来做到这一点)。
我只需要其中一个还是两者都需要?
答案1
这是在手册dpkg
页:
confnew
:如果配置文件已被修改并且包中的版本确实发生更改,则始终安装新版本而不提示,除非还--force-confdef
指定了,在这种情况下,首选默认操作。
confold
:如果conf文件已被修改并且包中的版本确实发生更改,则始终保留旧版本而不提示,除非--force-confdef
还指定了,在这种情况下首选默认操作。
confdef
:如果conf文件已被修改并且包中的版本确实发生变化,则始终选择默认操作而不提示。如果没有默认操作,它将停止询问用户,除非也给出了--force-confnew
或,在这种情况下,它将使用它来决定最终操作。--force-confold
--force-confdef
其本身有时会导致提示,因为并不总是指定默认操作。这可以通过添加--force-confnew
或来修复--force-confold
;当与 结合时--force-confdef
,它们不会取代它,而是补充它 - 所选操作将是默认操作(如果有),否则是新操作或旧操作(取决于选择的选项)。