仅当未安装/升级依赖项时才在 debian 包 postinst 中运行脚本

问题描述

如果特定的依赖包没有作为主包的安装过程的一部分安装或升级,有没有办法在 debian 包的 postinst 中运行命令?我们可以访问这些信息吗?

场景如下:

我正在使用两个链接相对紧密的 debian 软件包。一个提供主包 ('my_package'),另一个 ('my_dependency') 提供包使用的数据。我对“my_dependency”包的控制有限,并且它的 postinst 脚本需要大量时间来运行。该脚本使用“my_package”的版本来确定需要设置的内容

在全新安装(通过 apt install my_package)中,这工作正常:“my_dependency” postinst 脚本运行,并且能够查看正在安装的 my_package 的哪个版本,并执行正确的设置步骤。>

但是,当 my_dependency 已经在系统上时,我们会遇到一个问题:由于“my_dependency”已经在系统上,它的 postinst 将不会作为“my_package”安装过程的一部分执行。

解决此问题的一种方法是显式调用“my_dependency”安装脚本作为“my_package”的 postinst 的一部分。由于其他限制,无法从“my_dependency”的 postinst 中删除设置脚本步骤。这意味着对于此变通方法,长时间运行的安装脚本将在 my_package 的全新安装中运行两次:一次在 my_dependency 的 postinst 中,再次在 my_package 的 postinst 中。

我希望能够检查 my_dependency 是否真的刚刚安装或升级。如果没有,我会运行安装脚本。如果当前安装过程安装或升级了 my_dependency,那么我们不需要再次运行它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)