本质上,我使用这个答案来获得应用程序的非交互式体验,例如dpkg,apt以及其他可能依赖于前者的应用程序。
但问题是,这两个标志一起使用时是否有冲突?
我这么问是因为,据我了解:
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\n
confnew:如果配置文件已被修改并且包中的版本确实发生更改,则始终安装新版本而不提示,除非还--force-confdef指定了,在这种情况下首选默认操作。\n
confold:如果conf文件已被修改并且包中的版本确实发生更改,则始终保留旧版本而不提示,除非还--force-confdef指定了,在这种情况下首选默认操作。\n
confdef:如果conf文件已被修改并且包中的版本确实发生变化,则始终选择默认操作而不提示。如果没有默认操作,它将停止询问用户,除非也给出了--force-confnew或,在这种情况下,它将使用它来决定最终操作。--force-confold
--force-confdef其本身有时会导致提示,因为并不总是指定默认操作\xe2\x80\x99。--force-confnew这可以通过添加或来修复--force-confold;当与 结合时--force-confdef,这些不\xe2\x80\x99t 取代它,它们补充它 \xe2\x80\x94 所选的操作将是默认的(如果有),否则是新的或旧的操作(取决于选择的选项) )。