Apt
將 –force-confold 和 –force-confnew 與 dpkg 一起使用之間可能存在衝突嗎?
本質上,我正在使用這個答案來獲得與應用程序(例如
dpkg
,apt
以及其他可能依賴於前者的應用程序)的非互動式體驗。但問題是,這兩個標誌之間是否有任何衝突,當一起使用時?
我問是因為,據我了解:
apt-get -o Dpkg::Options::="--force-confdef"
使用預設設置(取決於包,我相信有些替換舊配置,有些保留舊配置,除非我弄錯了)
和
apt-get -o Dpkg::Options::="--force-confnew"
而是保留新配置…
所以我有點困惑為什麼某些來源提到其中兩個標誌,即使它們可能會或可能不會相互衝突(嘗試過它們但不知道任何會啟動的包,
debconf
除非我執行dist-upgrade
並等待正確的包來做到這一點)。我只需要其中一個還是兩者都需要?
這在手冊
dpkg
頁中得到解決:
confnew
: 如果一個 conffile 被修改並且包中的版本確實改變了,總是在沒有提示的情況下安裝新版本,除非--force-confdef
還指定了,在這種情況下,首選預設操作。
confold
: 如果某個配置文件被修改,並且包中的版本確實發生了變化,請始終保留舊版本而不提示,除非--force-confdef
還指定了,在這種情況下,首選預設操作。
confdef
: 如果某個配置文件被修改,並且包中的版本確實發生了變化,請始終選擇預設操作而不提示。如果沒有預設操作,它將停止詢問使用者,除非--force-confnew
或--force-confold
也給出,在這種情況下,它將使用它來決定最終操作。
--force-confdef
其本身有時會導致提示,因為並不總是指定預設操作。這可以通過添加--force-confnew
或來解決--force-confold
;與 結合使用時--force-confdef
,它們不會替換它,而是對其進行補充——所選操作將是預設操作(如果有),否則為新操作或舊操作(取決於選擇了哪個選項)。