如何创建正确的 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 新维护者指南

相关内容