ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux-.deb软件包配置文件问题

2019-11-07 01:51:08  阅读:370  来源: 互联网

标签:debian installer installation packaging linux


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

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

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

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

解决方法:

是的,请使用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

标签:debian,installer,installation,packaging,linux
来源: https://codeday.me/bug/20191107/2002338.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有