Debian
Debian conffiles 替代品
我維護一個本地 Debian 包,它安裝一個應用程序和一個初始 SQLite 數據庫。我希望應用程序能夠編輯數據庫。
如何防止升級替換數據庫?
我認為
conffiles
這是解決方案,但Debian 的維護者指南說:如果您的程序使用配置文件但也自己重寫它們,最好不要將它們設置為 conffile,因為 dpkg 會一直提示使用者驗證更改。
什麼是最好的選擇?
如果您真的在談論傳遞數據庫,而不是用於訪問數據庫的配置文件,那麼答案就在問題陳述中:數據庫不是配置文件。
最好的選擇(在我看來)是在維護者腳本中安裝數據庫,而不是直接作為包中的已安裝文件。這樣,您的維護者腳本可以處理可能出現的各種情況,包括
- 沒有數據庫的初始安裝;
- 使用應按原樣保留的現有數據庫進行升級;
- 使用需要遷移的現有數據庫進行升級。
您可以將數據庫發送到包中的某個臨時位置,位於 下的某個位置
/usr/share/yourpackage
,並且僅在必要時將其移動到其實際位置。不要將其發送到 中/tmp
,也不要嘗試“取消註冊”該文件。另請參閱安裝 .deb 包時臨時文件在哪裡?對於額外的獎勵積分,您可以查看
dbconfig-common
.