对于我正在编写的构建工具(我想为其实现一种依赖缓存系统),我想知道 .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
这是命令显示包信息。您可以在其中找到依赖项。