当前位置:  开发笔记 > 运维 > 正文

.deb软件包配置文件问题

如何解决《.deb软件包配置文件问题》经验,为你挑选了1个好方法。

我正在使用.deb软件包分发我的一个应用程序,但是与其中一个文件有关。

该发行版包含一个由应用程序不断更新的数据库文件,在全新安装中,我希望安装程序将新的空db文件复制到用户系统上,但是在升级时,我希望安装程序将现有副本保留在原位(覆盖它会导致所有用户数据丢失)。

目前,我已将该文件包含在“ conffiles”文件中,因此安装程序总是询问用户是否覆盖现有文件,但这不是我想要的行为-覆盖文件永远不是正确的选择,并且我担心用户在升级过程中可能会选择错误的选项,并拖延其数据。

有什么方法可以告诉安装程序,如果db文件已经存在,就别管它,不要问用户该怎么做?



1> wazoox..:

是的,请使用preinst / postinst脚本。通常的方法是使用特殊名称(以dpkg-new结尾)来命名包中的文件,例如/var/lib/myapp/mydb.data.dpkg-new。然后编写一个“ postinst ”脚本放入您软件包的DEBIAN目录中,以检查数据库是否存在,并相应地重命名或删除dpkg-new文件,例如:

#!/bin/bash

if [ -f /var/lib/myapp/mydb.data ]; then
    rm /var/lib/myapp/mydb.data.dpkg-new
else
   mv /var/lib/myapp/mydb.data.dpkg-new /var/lib/myapp/mydb.data
fi

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有