2014-02-17 51 views
2

我有一個Debian軟件包,它必須更新一些文件。這些文件將在卸載Debian軟件包後存在。我想將它們與我的包一起刪除,當我撥打apt-get刪除使用自己的更新機制卸載Debian軟件包後的剩餘文件

如果我更新的文件添加到

/var/lib/dpkg/info/<package>.list 

,他們將被刪除。

更新: 我會

室射頻文件夾中刪除的postrm.debhelper腳本文件夾

但感覺不對。 ;)

+0

請讓你的問題更清楚。您是否運送需要更改*的文件包,或者這些文件是否屬於其他包,或者它們不屬於任何包?您是否希望*在卸載軟件包時刪除它們?直接更改'/ var/lib/dpkg/info/$ package.list'幾乎肯定不是一個好主意。 –

+0

我想刪除的文件不屬於其他程序。應該隨軟件包卸載一起刪除它們。 – imizeropt

回答

3

首先,我會說這聽起來像一個包有點不正確的行爲,刪除在安裝前存在的卸載文件,我強烈建議不要做任何這樣的包在打包供使用廣大市民。但是,如果是私人使用,並且相關人員明白它的作用,那應該沒問題。

刪除prerm或postrm中的文件聽起來像是最好的答案。但請確保您無條件執行rm;在除包裝總體去除之外的幾種情況下,可以調用前期和後期。

除了您希望確保文件將被刪除之前從文件系統中刪除程序包的內容,postrm優於prerm。

在postrm,我建議做一些像

case "$1" in 
    purge|disappear) 
     rm -rf $your_folder 
esac 

你可以添加removepurgedisappear那裏,如果你想,即使這個包是「刪除」,而不是要刪除的文件「清除」(「清除」意味着包的配置文件將被保留;這通常意味着稍後再次安裝包的機會)。

甲postrm也將被稱爲上的正常包的升級時,或者當升級或初始安裝失敗(動作upgradefailed-upgradeabort-install,和abort-upgrade)。請參閱Debian政策,詳細說明如何以及何時使用這些政策。在這些情況下,你幾乎肯定不想執行rm

+0

安裝軟件包之前文件不存在。安裝的軟件包更新了一些文件,這些文件不會被刪除。但有了你的提示,我將添加刪除和清除刪除整個文件夾,我創建時安裝debian軟件包。甚至一些文件進入這個文件夾得到更新,我希望他們被清除,當包將被卸載。 – imizeropt