我知道我可以使用dpkg --info列出.deb的依赖关系,但是有没有自动的方法来检查当前系统的依赖关系? 我感兴趣的是状态:包装是否干净地安装,否则会失败。
根据手册: dpkg -i --force-bad-path --dry-run foo.deb 。 然而,这不起作用, 10年前就提出了一个错误 。
apt-get和aptitude有相应的选项,但只适用于通过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可能会放弃。