apt:列出 deb 包所需的依赖项但不安装它

apt:列出 deb 包所需的依赖项但不安装它

对于我正在编写的构建工具(我想为其实现一种依赖缓存系统),我想知道 .deb 包缺少哪些依赖项,没有采取安装它(可能)并阅读 apt-get 输出,即:我必须能够在软件中以非交互的方式做到这一点,这不是人类应该做的事情

手动过程如下:

dpkg -i something.deb || true
apt-get -f install

此时,apt 会打印类似以下内容的内容:

The following extra packages will be installed:
  ca-certificates git git-man krb5-locales libasn1-8-heimdal libcurl3-gnutls
  libedit2 liberror-perl libgssapi-krb5-2 libgssapi3-heimdal
  libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal
  libhx509-5-heimdal libidn11 libk5crypto3 libkeyutils1 libkrb5-26-heimdal
  libkrb5-3 libkrb5support0 libldap-2.4-2 libroken18-heimdal librtmp0
  libruby1.9.1 libsasl2-2 libsasl2-modules libsasl2-modules-db
  libwind0-heimdal libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6
  libxmuu1 libyaml-0-2 openssh-client openssl patch rsync ruby ruby1.9.1 xauth

我希望可靠地获得此类列表无需安装.deb(可能,因为我可以在安装后删除该软件包,并且系统和以前一样),但特别是无需手动交互地解析 apt-get 的输出以获取软件包列表

我可以使用 apt-get、apt-cache、aptitude 或 Debian 和/或 Ubuntu 中可用的任何软件包来执行此类任务。

答案1

dpkg -I package.deb

这是命令显示包信息。您可以在其中找到依赖项。

相关内容