2012-07-26 215 views
2

我有一个定制的Debian软件包,现在安装和卸载罚款,但有几个问题:Debian软件包卸载过程

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

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

  • 在卸载过程中有时通过软件包创建一些目录不被删除,因为它们不为空。错误如下:“dpkg:warning:删除软件包名称时,目录'/ opt/packagename /'不为空,因此未删除。”有没有办法强制删除包中安装的所有文件?
  • 我已经通过文档几次寻找答案,但似乎我一直没有找到正确的地方。

    回答

    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:警告: 同时去除软件包名,目录‘/选择/包/’不是空的,所以 不会被删除。”有没有办法通过软件包强制删除所有安装的文件 ?

    软件包安装该文件将被删除。该警告信号 在应用程序的生命周期中创建的文件。您可以使用postrm 脚本将其删除。

    作为一个方面说明,包不应该把东西到/ opt。

    +0

    奇怪的是,在prerm中添加了check和'exit 1'做了勾号。我确信我之前尝试过,正如我在问题中提到的那样。无论如何感谢! – Debianuser 2012-08-07 14:34:06