2013-03-29 13 views

回答

2

这将是困难的。

Dpkg不会以任何方式(通过环境变量或其他方式)将当前安装文件的名称导出到维护者脚本,并且在运行维护者脚本时,它甚至不会处理原始文件。 deb文件,因此即使/proc/$pid检查也不起作用。你可以做的东西,将“有时”通过查找其名称文件APT的缓存目录(配置项Dir::Cache,通常/var/cache/apt/)的工作是一样的东西

${DPKG_MAINTSCRIPT_PACKAGE}_packageversion_${DPKG_MAINTSCRIPT_ARCH}.deb 

..where你在构建硬编码当前包版本时间,省略任何时代领域,因为dpkg不会为您提供preinst。如果您使用APT进行安装,那么这很有用;如果你使用dpkg -i或别的东西,你运气不好。

更好的答案可能是,为什么你想这样做?可能有更好的方法来解决你的问题。

+0

我们已将应用程序分发给alpha测试用户,他未能安装我们的应用程序并将失败的截图发送给我们,我们怀疑他们下载了损坏的deb文件。如果我们在preinst脚本中打印debian文件的MD5总和,那对我们来说是一个很大的帮助。 – moligaloo

+0

为什么不直接让这个用户得到他试图直接安装的'.deb'的md5sum? –

+0

更好的解决方案也是通过APT分发签名的debs;这样你和用户就可以确定这个软件包的内容没有改变(并且你也获得了安全方面的好处)。 –

相关问题