如果磁盘空间不足,如何中止deb软件包的安装

时间:2012-04-12 07:59:23

标签: iphone jailbreak deb dpkg

我正在为iPhone开发一个越狱计划。当磁盘空间不足时,安装仍将继续,因此部分文件被复制,而其他文件则没有,这会使磁盘变脏。

我在preinst和prerm脚本上编写了磁盘空间检查代码,这些脚本是deb软件包的控制文件。当磁盘空间不足时,控制脚本将以非零代码退出。但问题是,当我们升级软件包时,如果磁盘空间不足,即使prerm脚本退出非零状态,dpkg仍会删除旧文件,因此升级将成为删除,这不是我期望的结果。

1 个答案:

答案 0 :(得分:0)

我不太了解Cydia,但如果它的工作方式与dpkg完全相同,那么这应该是可以解决的。请参阅http://people.debian.org/~srivasta/MaintainerScripts.html#sec-3.4.3处的包升级活动图。

这显示了在运行prerms和preinsts过程中可以采用的一些不同路径,这些路径将系统引回到干净的,旧版本仍然安装的状态。例如,如果new-preinst失败,则new-postrm将以“abort-upgrade”作为参数运行。如果成功,那么old-postinst也会以“abort-upgrade”运行。如果成功,您将恢复到干净,安装状态。