2012-04-12 57 views
0

我正在爲iPhone開發越獄程序。當磁盤空間不足時,安裝將繼續進行,因此部分文件被複制,而其他文件不被複制,這會使磁盤變髒。如何在磁盤空間不足的情況下中止deb包的安裝

我已經在deb包的控制文件preinst和prerm腳本上寫了磁盤空間檢查代碼。當磁盤空間不夠時,控制腳本將以非零代碼退出。但問題是,當我們升級一個軟件包時,如果磁盤空間不足,dpkg仍然會刪除舊文件,即使prerm腳本以非零狀態退出,因此升級變成刪除,這不是我期望的結果。

回答

0

我對Cydia沒有太多瞭解,但是如果它的工作原理與dpkg完全相同,那麼這應該是可以解決的。請參閱http://people.debian.org/~srivasta/MaintainerScripts.html#sec-3.4.3的軟件包升級活動圖。

這表明可以在運行prerms和preinsts的過程中採取一些不同的路徑,這些路徑將系統恢復到乾淨,舊版本的安裝狀態。例如,如果新的preinst失敗,那麼新的postrm將以「abort-upgrade」作爲參數運行。如果成功,則old-postinst也會以「abort-upgrade」運行。如果成功了,你會回到一個乾淨的安裝狀態。

相關問題