2016-07-12 87 views
1

我正在構建一個使用debconf的deb來詢問用戶是否真的想要安裝它(簡單的布爾模板)。優雅地退出安裝的最佳方式是什麼,以便用戶在以後可以使用apt-get install pkg-name並提供全新的配置菜單?我如何從維護者腳本中優雅地退出deb安裝?

我目前的解決方案是在preinst腳本來檢查值象下面這樣:

db_get pkg-name/confirm_install 
if [ "$RET" = "false" ]; then 
     db_purge 
     exit 1 
fi 

exit 1有必要保持apt-get持續和思考安裝的軟件包,以及db_purge允許用戶與重新安裝一個乾淨的debconf數據庫。然而,它引發了一個令人討厭的錯誤:

dpkg: error processing pkg-name (--configure): 
subprocess installed post-installation script returned error exit status 1 
Errors were encountered while processing: 
pkg-name 
E: Sub-process /usr/bin/dpkg returned an error code (1) 

有沒有更好的方法來處理退出從deb的維護者腳本內安裝?

+0

怎麼回事'db_get pkg-name/confirm_install |真的' –

回答

1

我不相信有。從dpkg的角度來看,用戶要求安裝軟件包,如果最終沒有發生,它需要給出儘可能多的解釋來證明它沒有發生,爲什麼不這樣做。

對於您而言,您可能會允許該軟件包完全安裝完成,但不啓用該軟件包提供的任何額外行爲,直到用戶運行特殊「重新配置」腳本(或標準dpkg-reconfigure $yourpkg)。

+0

恐怕你是對的,而且這很有道理。經過多次搜索,我似乎無法找到任何方法來做到這一點。我會給它幾天,直到我接受你的答案,看看其他人是否有想法。 – KernelSanders