如何创建合适的 debian postinst 和 postrm 脚本?

ans*_*ker 3 packaging ubuntu debian

我已经尝试创建这些脚本,安装进行得很顺利,但是,一旦应用程序版本被颠簸并说我尝试升级到 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
Run Code Online (Sandbox Code Playgroud)

这是我的 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
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 10

你应该删除它们。

postinst只设置文件权限;这些应该在打包内容中设置,而不是在安装后脚本中设置。

postrm删除日志文件和卸载用户主目录中的文件(假设它是使用 卸载的sudo);这两个都是明确的禁忌,主目录对于维护者脚本来说是禁止的,并且在删除(和清除)时应该留下日志。您的脚本还会删除/usr/lib/apx另一个禁忌:dpkg应该处理它。

强烈建议您阅读Debian 新维护者指南