繁体   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