将 --force-confold 和 --force-confnew 与 dpkg 一起使用之间是否可能存在冲突?

Nor*_*tfi 8 dpkg apt

本质上,我使用这个答案来获得应用程序的非交互式体验,例如dpkgapt以及其他可能依赖于前者的应用程序。

但问题是,这两个标志一起使用时是否有冲突?

我这么问是因为,据我了解:

apt-get -o Dpkg::Options::="--force-confdef"
Run Code Online (Sandbox Code Playgroud)

使用默认设置(取决于软件包,我相信有些会替换旧配置,有些会保留旧配置,除非我弄错了)

apt-get -o Dpkg::Options::="--force-confnew"
Run Code Online (Sandbox Code Playgroud)

保留新配置...

所以我有点困惑为什么某些来源提到其中两个标志,即使它们可能会或可能不会相互冲突(尝试过它们但不知道任何会启动的包,debconf除非我运行dist-upgrade并等待正确的包来做到这一点)。

我只需要其中一个还是两者都需要?

Ste*_*itt 14

手册dpkg中对此进行了解决:

\n
\n

confnew:如果配置文件已被修改并且包中的版本确实发生更改,则始终安装新版本而不提示,除非还--force-confdef指定了,在这种情况下首选默认操作。

\n

confold:如果conf文件已被修改并且包中的版本确实发生更改,则始终保留旧版本而不提示,除非还--force-confdef指定了,在这种情况下首选默认操作。

\n

confdef:如果conf文件已被修改并且包中的版本确实发生变化,则始终选择默认操作而不提示。如果没有默认操作,它将停止询问用户,除非也给出了--force-confnew或,在这种情况下,它将使用它来决定最终操作。--force-confold

\n
\n

--force-confdef其本身有时会导致提示,因为并不总是指定默认操作\xe2\x80\x99。--force-confnew这可以通过添加或来修复--force-confold;当与 结合时--force-confdef,这些不\xe2\x80\x99t 取代它,它们补充它 \xe2\x80\x94 所选的操作将是默认的(如果有),否则是新的或旧的操作(取决于选择的选项) )。

\n