Debian包卸载过程

时间:2012-07-26 13:29:05

标签: debian apt-get dpkg

我有一个自定义构建的Debian软件包,现在可以正常安装和卸载,但有几个问题:

  1. 我想知道如何让卸载过程检查磁盘上的文件。假设文件/etc/file.conf存在,我不希望卸载软件包。那可能吗?我尝试将检查添加到prerm和postrm,但是无论如何,即使IF prerm和postrm脚本退出时也会删除包安装的所有文件。
  2. 我猜我可能会在这些脚本中使用特定的退出代码吗?

    1. 在卸载期间,有时会删除由包创建的某些目录,因为它们不为空。错误如下:“dpkg:warning:在删除packagename时,目录'/ opt / packagename /'不为空,因此不会被删除。”有没有办法强行删除包安装的所有文件尽管内容?
    2. 我几次通过文档寻找答案,但似乎我没有找到正确的地方。

1 个答案:

答案 0 :(得分:2)

  

我想知道如何让卸载过程检查磁盘上的文件。   假设文件/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:warning:   删除packagename时,目录'/ opt / packagename /'不为空   没有删除。“有没有办法强制删除所有安装的文件   虽然包含内容,但是包裹?

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

作为附注,包不应该把东西放进/ opt。