.deb
我已经使用命令创建了一个包equivs-build
并提供了必要的control
、、preinst
等postinst
。我注意到version
也可以在control
文件中提及。现在我想创建一个.deb
具有更新源代码的包,并且我想让用户能够在包已安装的情况下升级它(当然是以前的版本),因为我不会更改conf
相关文件等。我能想到的一种方法是编写一个脚本,该脚本首先检查已安装的版本,并采取相应的操作(即,如果已安装,则仅更新源代码、数据库迁移等,如果没有,则使用安装包dpkg -i <package-name>
)。我想知道是否有一种方法可以dpkg
仅使用(类似于dpkg upgrade <package-name>
)来根据需要处理安装或升级。
答案1
您正在寻找的命令确实是dpkg -i
。这将安装(如果未安装)并升级(如果已安装)。dpkg
不会更改用户修改的配置文件。它会询问您如何处理此类情况(保留修改、放弃修改等),并且它将始终保留您放弃的任何内容的备份(软件包提供的新配置文件或旧的用户修改文件 )。软件包安装的任何文件都/etc/
被视为dpkg
配置文件。