如何建立正確的 debian postinst 和 postrm 腳本?

如何建立正確的 debian postinst 和 postrm 腳本?

我嘗試創建這些腳本,安裝進展順利,但是,一旦應用程式版本發生衝突並說我嘗試升級到 apx v2.0,一切進展順利。

這是我的 postinst 腳本

#!/bin/sh

set -e 
chmod 755 /usr/bin/apx
chmod 755 /usr/lib/apx/apx.py
chmod -R 755 /usr/lib/apx/data/binaries

exit 0

這是我的 postrm 腳本

#!/bin/sh

set -e

U_HOME=$(getent passwd $SUDO_USER | cut -d: -f6)
LOG="/var/log/apx"
UHOME="$U_HOME/.apx"

if [ -d $LOG ]; then
     rm -rf $LOG
fi

if [ -d $UHOME ]; then
     rm -rf $UHOME
fi

rm -rf /usr/lib/apx

exit 0

答案1

你應該刪除它們。

postinst只設定檔案權限;這些應該在打包內容中設置,而不是在安裝後腳本中設置。

postrm刪除日誌檔案以及卸載使用者主目錄中的檔案(假設使用 卸載sudo);這兩個都是明確的禁忌,主目錄是維護者腳本的禁區,並且日誌應該在刪除(和清除)時留下。您的腳本也會刪除/usr/lib/apx另一個禁忌:dpkg應該處理該問題。

強烈地建議您閱讀Debian 新維護者指南

相關內容