Debian软件包卸载过程



我有一个自定义的Debian包,它现在安装和卸载都很好,但有几个问题:

  1. 我想知道如何在卸载过程中检查磁盘上的文件。假设文件/etc/file.conf存在,我不希望卸载该包。这可能吗?我尝试将检查添加到prerm和postrm,但包安装的所有文件都会被删除,即使IF prerm和postrm脚本退出时出错

我猜可能有一个特定的退出代码应该在这些脚本中使用?

  1. 在卸载过程中,有时软件包创建的一些目录不会被删除,因为它们不是空的。错误类似于:"dpkg:警告:删除packagename时,目录'/opt/packagename/'不为空,因此未删除。"是否有方法强制删除包安装的所有文件,而不管其内容如何

我已经浏览了几次文档来寻找答案,但似乎我没有找到合适的地方。

我想知道如何在卸载过程中检查磁盘上的文件。假设文件/etc/file.conf存在,我不希望卸载该包。是可能吗?我尝试将检查添加到prerm和postrm中,但包中安装的所有文件都会被删除,即使IF prerm和postrm脚本退出时出错。

从prerm脚本非零退出不会删除所有已安装的文件。

#!/bin/sh
if [ -x /etc/file.conf ]; then
  echo "You shall not remove me" >&2
  exit 1
fi

在卸载过程中,有时打包创建的一些目录未移除,因为它们不是空的。错误类似于:"dpkg:警告:删除packagename时,目录"/opt/packagename/"不为空,因此未移除。"有没有办法强制删除所有安装的文件不管里面装的是什么?

程序包安装的文件将被删除。那个警告信号在应用程序生命周期内创建的文件。你可以使用postrm脚本来删除它们。

顺便说一句,包裹不应该把东西放进/opt。

相关内容