簡體   English   中英

將新的配置參數添加到程序包的配置文件中時該怎么辦?

[英]What should I do when I add a new config parameter to config file of my package?

我正在處理一些項目的軟件包。

假設我的項目中有一個類似的配置文件。

name=foo
mail=foo@foo.com

安裝后,用戶使用其信息編輯配置文件。

name=user
mail=user@somedomain.com

當有更新時,為了不破壞用戶的配置文件,我不像所有軟件包一樣將conf文件替換為新文件。

到現在為止沒有問題。

如果我在配置文件中添加新參數怎么辦? 例如,

name=foo
mail=foo@foo.com
age=23 

如果我用新的替換配置文件,用戶將丟失其設置。 如果沒有,則無法使用新參數。 我想知道這種情況的一般程序是什么? 我的問題是有效的,無論它是什么包類型(即rpm,deb或tbz)。

我不確定是否看到了問題。 只要軟件可以處理配置文件中字段的缺失(即使用合理的默認值),那么在您描述的兩種情況下就沒有區別。 如果您的軟件無法處理該字段的缺失,那么我認為這是一個錯誤。

@威廉·普塞爾(William Pursell):僅僅因為您沒有看到問題,並不意味着就沒有問題。

這肯定是一個問題,自從我維護了deb軟件包以來,這困擾了我。 例如:許多配置文件包含注釋的配置項以及程序包用戶應在應用其配置更改之前閱讀並理解的其他注釋。 如果在軟件開發的正常過程中,存在新的配置項,新的默認值或與現有配置不同的語義,則必須修改注釋。 這是軟件包維護者的工作。 但是同時,該程序包一定不能弄亂用戶已經應用的配置更改。

當我在Debian / Ubuntu中執行此操作時,軟件包用戶會遇到以下令人生畏的問題:

Configuration file `/etc/...'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** ... (Y/I/N/O/D/Z) [default=N] ?

對於每個文件。 也就是說,對於某些軟件包升級,用戶每次必須多次鍵入是/否/也許是:-)。 事實是,軟件包用戶通常不知道這是怎么回事。 她必須深入研究文件,差異版本並進行一些猜測,以找出合理的答案。 順便說一句,如果包裝系統允許,包裝維護者可能已經做出了答案。

我認識到可能不存在針對此問題的一般解決方案。 但我很想聽聽其他包裝維護者如何應對這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM