![Как создать правильный скрипт Debian postinst и postrm?](https://rvso.com/image/109254/%D0%9A%D0%B0%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%20Debian%20postinst%20%D0%B8%20postrm%3F.png)
Я пробовал создавать эти скрипты, установка проходит успешно, однако, как только версия приложения повышается и я пытаюсь обновиться до 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.