根据 Debian 软件包维护者脚本文档,可以使用install
或upgrade
第一个参数调用预安装脚本:
该
preinst
脚本可以通过以下方式调用:
new-preinst
安装new-preinst
安装旧版本新版本new-preinst
升级旧版本 新版本
install old-version new-version
和 和有什么区别upgrade old-version new-version
?第一种形式(只是install
)似乎很清楚,但我不明白旧版本号和新版本号之间的区别install
以及指定的位置。upgrade
这在“详细信息”部分中有解释:
preinst
进行调用;upgrade
rc
的dpkg -l
输出),则preinst
使用install
旧版本和新版本进行调用;preinst
则调用时install
不带版本信息。由于
preinst
在解包阶段之前运行,upgrade
表示包内容的先前版本可用,而install
表示包内容不存在任何版本(配置文件除外)。另外,如果提供版本信息,则表明可能有配置文件需要处理。upgrade
和之间的差异并不install
显着,但确实令人想到的一种情况是涉及导出数据的升级。例如,在upgrade
模式中,slapd
'spreinst
导出其数据库;它无法在install
模式下执行此操作,因为不存在适当的工具。考虑:
现在维护者脚本需要处理这些配置文件、用户、组等,尽管严格来说,您不是在升级,而只是在安装。您可以在此处的第二个流程图中看到这一点:“安装之前已删除但未清除的软件包”