Debian

Debian conffiles 替代品

  • November 27, 2018

我維護一個本地 Debian 包,它安裝一個應用程序和一個初始 SQLite 數據庫。我希望應用程序能夠編輯數據庫。

如何防止升級替換數據庫?

我認為conffiles這是解決方案,但Debian 的維護者指南說

如果您的程序使用配置文件但也自己重寫它們,最好不要將它們設置為 conffile,因為 dpkg 會一直提示使用者驗證更改。

什麼是最好的選擇?

如果您真的在談論傳遞數據庫,而不是用於訪問數據庫的配置文件,那麼答案就在問題陳述中:數據庫不是配置文件。

最好的選擇(在我看來)是在維護者腳本中安裝數據庫,而不是直接作為包中的已安裝文件。這樣,您的維護者腳本可以處理可能出現的各種情況,包括

  • 沒有數據庫的初始安裝;
  • 使用應按原樣保留的現有數據庫進行升級;
  • 使用需要遷移的現有數據庫進行升級。

您可以將數據庫發送到包中的某個臨時位置,位於 下的某個位置/usr/share/yourpackage,並且僅在必要時將其移動到其實際位置。不要將其發送到 中/tmp,也不要嘗試“取消註冊”該文件。另請參閱安裝 .deb 包時臨時文件在哪裡?

對於額外的獎勵積分,您可以查看dbconfig-common.

引用自:https://unix.stackexchange.com/questions/484430