我有一个自定义的Debian包,它现在安装和卸载都很好,但有几个问题:
- 我想知道如何在卸载过程中检查磁盘上的文件。假设文件
/etc/file.conf
存在,我不希望卸载该包。这可能吗?我尝试将检查添加到prerm和postrm,但包安装的所有文件都会被删除,即使IF prerm和postrm脚本退出时出错
我猜可能有一个特定的退出代码应该在这些脚本中使用?
- 在卸载过程中,有时软件包创建的一些目录不会被删除,因为它们不是空的。错误类似于:"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。