Как создать правильный скрипт Debian postinst и postrm?

Как создать правильный скрипт Debian postinst и postrm?

Я пробовал создавать эти скрипты, установка проходит успешно, однако, как только версия приложения повышается и я пытаюсь обновиться до apx v2.0, ничего не получается.

Это мой скрипт постинсталяции

#!/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

это мой пост-скрипт

#!/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.

Связанный контент