2013-03-02 123 views
1

我正在處理一些項目的一些軟件包。當我爲我的包的配置文件添加一個新的配置參數時,應該怎麼做?

假設我在我的項目中有這樣的配置文件。

name=foo 
[email protected] 

安裝後,用戶使用他/她的信息編輯配置文件。

name=user 
[email protected] 

當一個更新來了,爲不破壞用戶配置文件的目的,我不以新的,因爲所有的包應該做替換的conf文件。

到目前爲止沒有問題。

如果我將一個新參數添加到我的配置文件,該怎麼辦?例如,

name=foo 
[email protected] 
age=23 

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

+0

什麼是'tbz'?是「tgz」的錯字還是新的? – 2013-03-03 01:47:19

+0

@William Pursell for freebsd的擴展包 – ibrahim 2013-03-03 06:36:58

回答

0

@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] ? 

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

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

0

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

相關問題