web-dev-qa-db-ja.com

適切な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
2
answerSeeker

それらを削除する必要があります。

postinstはファイルの権限のみを設定します。これらは、インストール後のスクリプトではなく、パッケージ化されたコンテンツで設定されることになっています。

postrmは、ログファイルと、アンインストールするユーザーのホームディレクトリ内のファイルを削除します(Sudoを使用してアンインストールされた場合)。これらはどちらも明確なno-nosであり、ホームディレクトリはメンテナースクリプトの立ち入りが禁止されており、ログは削除(およびパージ)時に残しておく必要があります。また、スクリプトは/usr/lib/apxも削除します。これはもう1つの禁止事項です:dpkgがこれを処理することになっています。

私は強くDebian New Maintainers ’Guide を読むことをお勧めします。

7
Stephen Kitt