我开发了一个软件包,正在 Ubuntu 系统上手动安装(使用apt
)。卸载时使用:
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
您可以使用postrm
强制删除该文件夹,但需要注意两个可能的问题:
postrm
dpkg --remove
在 a 期间和 期间被调用dpkg --purge
,并且您的文件夹将始终被删除。- 如果您写入共享文件夹,您还将删除使用该文件夹的其他应用程序。
为了防止出现问题 2,您可以先删除所有文件,然后检查目录是否为空,然后再将其删除。
如果您不关心问题 1,您可以强制删除,但为了区分 postrm 中的删除和清除,您可以:
if [ "$1" = "purge" ]; then
rmdir -R /path/to/directory
fi