Как удалить все следы пакета при удалении?

Я разработал пакет, который вручную устанавливаю в системах 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 моего пакета, но не уверен, что это лучший подход. Любой совет будет принят во внимание!

1
задан 10 October 2019 в 21:12

1 ответ

Вы можете использовать postrm для принудительного удаления папки, но вы должны знать о двух возможных проблемах:

  1. postrm вызывается во время dpkg --remove и во время dpkg --purge, и ваша папка всегда будет удалена.
  2. Если вы записываете в общую папку, вы также удаляете другие приложения, использующие эту папку.

Чтобы предотвратить проблему 2, вы можете сначала удалить все свои файлы, а затем проверить, не пуст ли каталог, и только после этого удалить его.

Если проблема 1 вас не беспокоит, вы можете принудительно удалить удаление, но чтобы различать удаление и очистку в postrm, в вашем случае вы можете:

if [ "$1" = "purge" ]; then
rmdir -R  /path/to/directory
fi
2
ответ дан 26 May 2020 в 10:52

Другие вопросы по тегам:

Похожие вопросы: