检查针对当前系统的deb依赖性

我知道我可以使用dpkg --info列出.deb依赖关系,但是有没有自动的方法来检查当前系统的依赖关系? 我感兴趣的是状态:装是否干净地安装,否则会失败。

根据手册: dpkg -i --force-bad-path --dry-run foo.deb 。 然而,这不起作用, 10年前就提出了一个错误 。

apt-getaptitude有相应的选项,但只适用于通过apt获得的软件包。

这是一个非常黑客的方法,但是工作,有点。

确保你不是root用户,否则你可能会覆盖一些系统文件。
创build一个临时目录并改变它。

 mkdir root cp -as /var/lib/dpkg . rm dpkg/lock dpkg/triggers/Lock fakeroot dpkg --force-not-root --force-bad-path --admindir=dpkg --instdir=root --log=log -i mypackage.deb 

这将解压缩包,然后抱怨stderr上缺less的依赖关系。 由于postinst脚本失败,即使没有缺失依赖关系,它也可能返回非零状态。

我还没有尝试过一个包含preinst脚本的软件包,在检查依赖关系之前, dpkg可能会放弃。