特定のパッケージの再帰依存関係をリストしたいと思います。現在インストールされている各依存関係のバージョンです。また、各行に項目があるので、ソートして区別できるようにしたいです。
tcpdump
基本的に、出力が次のようになりたいとします。
libtext-wrapi18n-perl: 0.06-7
perl-base: 5.14.2-21+deb7u2
...など。各行の正確な形式は重要ではなく、重要なことは区別して整列する能力です。
質問APTにインストールされたパッケージの依存関係のリスト(再帰)同様ですが、パッケージのバージョンを提供していません。使用法はdebfoster -d
有望に見えますが、その出力は追加の処理には適していません。
ベストアンサー1
すでに提供されている両方の答えには長所と短所があります。
解析が簡単なパッケージのリストが最初から提供されるため、debfoster
以下はリクエストの結果を提供します。
apt-cache policy $(debfoster -q -d tcpdump|tail -n +2)|awk '/^[^ ]/ { package=$0 } / Installed/ { print package " " $2 }'
tail
最初の行をスキップしてawk
単一の操作で結果を処理するために使用されます。 (コマンドオーバーライドを使用すると改行を避けることができます。)開始することは、すでにインストールされているパッケージに対してのみdebfoster
これを実行できることを意味しますdpkg
。
dpkg -l $(debfoster -q -d tcpdump|tail -n +2)
最初から始めると、apt-rdepends
より難しいパッケージのリストが提供され、重複しているがまだインストールされていないパッケージを処理できるという利点があります。
apt-cache policy $(apt-rdepends -p tcpdump 2>| /dev/null|awk '/Depends/ {print $2}'|sort -u)|awk '/^[^ ]/ { package=$0 } / Installed/ { print package " " $2 }'
これは次のコマンドで使用することもできますdpkg -l
。
dpkg -l $(apt-rdepends -p tcpdump 2>| /dev/null|awk '/Depends/ {print $2}'|sort -u)
ただし、これにはdpkg
関連するすべてのパッケージに関する知識が必要であり、処理中のパッケージがインストールされていない場合はそうでない可能性があります。
debfoster
Recommends
デフォルトで含まれているこの機能は、以下を使用して無効にできます--option UseRecommends=no
。
debfoster -q --option UseRecommends=no -d tcpdump
apt-rdepends
Recommends
デフォルトでは含まれません。この機能は以下を使用して有効にできます-f Depends,PreDepends,Recommends -s Depends,PreDepends,Recommends
。
apt-rdepends -f Depends,PreDepends,Recommends -s Depends,PreDepends,Recommends -p tcpdump
debfoster
この場合、見つかったすべての依存関係を提供するわけではありません。 (たとえば、debfoster
findはvia、andtcpdump
に依存しますが、via、andには依存しません。)apt
libssl1.0.0
debconf
apt-utils
apt-rdepends