如何在 DEB 中使用 postinst 脚本阻止包更新

如何在 DEB 中使用 postinst 脚本阻止包更新

我为我的 Raspberry Pi 编译并打包了 QEMU,但 apt 认为通过安装它,我从 1.3.1(存储库中最新可用)“降级”到 5.2.50(我的 deb)。所以现在每次我运行apt upgradeapt“升级”从 5.2.50(我的 deb)到 1.3.1(存储库中最新可用)。现在我正在使用sudo apt-mark hold qemu.

我想要的是让postinstdeb 中的脚本阻止包更新,并prerm让脚本维护它,我知道如果不删除 dpkg 锁或类似的东西,你就无法从这些脚本中运行 apt 和 dpkg 命令不想做。

我的问题:有没有办法阻止包通过脚本更新postinst并通过脚本不告诉它prerm而不删除 dpkg 锁?

答案1

适当的修复是使用正确的版本号,而不是尝试通过删除postinst.您要替换的 QEMU 软件包有一个“纪元”,即版本号中冒号之前的数字“1:3.1...”。你的版本号也需要这个,IE“1:5.2.50……”

apt然后将认为您的版本比存储库中的版本更新。

相关内容