在升級過程中合併/etc中的conf檔的工具?

在升級過程中合併/etc中的conf檔的工具?

Gentoo Linux有一套工具可以協助合併當升級軟體包時,conf 檔案會發生變化。例如,conf-update工具或dispatch-conf工具。

然而,當我在 Ubuntu 上升級軟體包時,我只能選擇 (1) 使用新的 conf 文件,(2) 使用舊的 conf 文件,(3) 啟動 shell。

Ubuntu 有沒有類似conf-update或 的工具dispatch-conf

更多說明:

假設有一個服務,其設定檔是/etc/something.conf.安裝該something軟體包將提供“預設”配置,其中所有選項均已註釋。然後我根據需要修改選項。

然後有一個更新,並透過更新安裝新的“預設”配置。某些選項可能會被棄用,可能會新增選項,並且可能會修正現有選項的描述。

現在這個「預設」配置顯然與已經編輯的/etc/something.conf檔案衝突。

Gentoo Linux,新配置將以唯一名稱儲存,並列印一條警告,通知我「設定檔已更改/更新」。然後我運行conf-update這將幫助我對受影響的配置文件執行雙向合併。對於每次更改,我可以選擇 (1) 保留我的版本,(2) 使用套件的版本,或 (3) 手動編輯。通常我選擇 (2) 進行註釋更改,(1) 保留我的具體更改,以及 (3) 如果我與預設值有很大偏差。

如果可能的話,我希望在 Ubuntu 中擁有相同的控制/互動。

答案1

透過 升級時apt-get,通常會提示如何處理設定檔(安裝新版本、保留舊版本等)。

如果我們選擇保留目前版本,新的設定檔將以副檔名(.dpkg-dist)儲存。

可以使用以下命令列出新檔案:

find /etc -type f -name "*.dpkg-dist"

要對這些設定檔採取操作,我們可以使用提供的UCF工具。其語法為:

ucf <new-file> <old-file>

例如,

ucf /etc/sysctl.conf.dpkg-dist /etc/sysctl.conf

也可以看看,

https://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-management-by-dpkg/

相關內容