適切な 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 新規メンテナーガイド

関連情報