私が作成しているビルドツール(依存関係キャッシュシステムのようなものを実装したい)では、.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
これはパッケージ情報を表示するコマンドです。依存関係を見つけることができます。