Debian软件包卸载过程

Debian软件包卸载过程,debian,apt-get,dpkg,Debian,Apt Get,Dpkg,我有一个定制的Debian软件包,现在安装和卸载都很好,但有几个问题: 我想知道如何在卸载过程中检查磁盘上的文件。假设文件/etc/file.conf存在,我不希望卸载该包。可能吗?我尝试将检查添加到prerm和postrm中,但是包安装的所有文件都会被删除,即使prerm和postrm脚本出现错误 我猜可能有一个特定的退出代码,我应该在这些脚本中使用 在卸载过程中,有时软件包创建的某些目录不会被删除,因为它们不是空的。该错误类似于:“dpkg:警告:在删除packagename时,目录'/op

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

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

  • 在卸载过程中,有时软件包创建的某些目录不会被删除,因为它们不是空的。该错误类似于:“dpkg:警告:在删除packagename时,目录'/opt/packagename/'不为空,因此未被删除。”是否有方法强制删除软件包安装的所有文件,而不考虑其内容
  • 我已经查阅了几次文档,寻找答案,但似乎我没有找到正确的地方

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

    奇怪,在prerm中添加了检查和“退出1”就完成了勾选。正如我在问题中提到的,我肯定我以前试过这个方法。无论如何,非常感谢!