Я разработал пакет, который вручную устанавливаю в системах Ubuntu (используя апп
). При удалении с помощью:
sudo dpkg --purge <package-name>
я получаю предупреждения:
dpkg: warning: while removing <package-name>, directory '/opt/<package-name>' not empty so not removed
dpkg: warning: while removing <package-name>, directory '/var/log/<package-name>' not empty so not removed
Я хотел бы полностью удалить все файлы из системы, а каталоги, для которых я получаю предупреждение, создаются / используются только моим пакетом. Есть ли способ принудительно удалить их (и это плохая идея)?
Я думал об удалении каталогов в сценарии postrm моего пакета, но не уверен, что это лучший подход. Любой совет будет принят во внимание!
Вы можете использовать postrm
для принудительного удаления папки, но вы должны знать о двух возможных проблемах:
postrm
вызывается во время dpkg --remove
и во время dpkg --purge
, и ваша папка всегда будет удалена. Чтобы предотвратить проблему 2, вы можете сначала удалить все свои файлы, а затем проверить, не пуст ли каталог, и только после этого удалить его.
Если проблема 1 вас не беспокоит, вы можете принудительно удалить удаление, но чтобы различать удаление и очистку в postrm, в вашем случае вы можете:
if [ "$1" = "purge" ]; then
rmdir -R /path/to/directory
fi