如何解决仅当未安装/升级依赖项时才在 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 举报,一经查实,本站将立刻删除。