如何在 deb 文件的 postinst 和 preinst 脚本中获取包的当前运行版本?

如何在 deb 文件的 postinst 和 preinst 脚本中获取包的当前运行版本?

postinst我正在创建一个 Debian 软件包,如果安装了以前的版本,它将丢弃软件包脚本中执行的一些数据库操作。我谷歌了一下,找到 RPM但我找不到 debian。

我想知道Debian是否有等效变量或类似的东西%pre[un]%post[un]

答案1

根据Debian 政策手册postinst 脚本以旧版本号作为第二个参数进行调用:

postinst configure most-recently-configured-version

因此,在您的帖子中,您只需检查该参数。

对于preinst

  1. 运行新包的 preinst:

    如果软件包正在升级,请调用:

    new-preinst upgrade old-version
    

    [...]

    否则,如果软件包安装了以前版本的一些配置文件(即,它处于“Config-Files”状态):

    new-preinst install old-version
    

    [...]

    否则(即,包被彻底清除):

    new-preinst install
    

相关内容