Ambas as respostas já fornecidas têm seus prós e contras.
Começando com debfoster
, é apresentada uma lista de pacotes que é simples de analisar, de modo que o seguinte forneça o resultado solicitado:
apt-cache policy $(debfoster -q -d tcpdump|tail -n +2)|awk '/^[^ ]/ { package=$0 } / Installed/ { print package " " $2 }'
usando tail
para pular a primeira linha e awk
para processar o resultado em uma única operação. (Usar uma substituição de comando evita a necessidade de processar novas linhas.) Começando com debfoster
significa que só podemos fazer isso com um pacote que já está instalado, então podemos usar dpkg
para fornecer mais informações:
dpkg -l $(debfoster -q -d tcpdump|tail -n +2)
Começando com apt-rdepends
, fornece uma lista de pacotes que é um pouco mais difícil de processar, com duplicatas; mas tem a vantagem de poder processar pacotes que ainda não estão instalados:
apt-cache policy $(apt-rdepends -p tcpdump 2>| /dev/null|awk '/Depends/ {print $2}'|sort -u)|awk '/^[^ ]/ { package=$0 } / Installed/ { print package " " $2 }'
Isso também pode ser usado com dpkg -l
:
dpkg -l $(apt-rdepends -p tcpdump 2>| /dev/null|awk '/Depends/ {print $2}'|sort -u)
mas isso requer que dpkg
saiba sobre todos os pacotes envolvidos, o que pode não ser o caso se o pacote que está sendo processado não estiver instalado.
debfoster
inclui Recommends
por padrão; isso pode ser desativado usando --option UseRecommends=no
:
debfoster -q --option UseRecommends=no -d tcpdump
apt-rdepends
não inclui Recommends
por padrão; isso pode ser ativado usando -f Depends,PreDepends,Recommends -s Depends,PreDepends,Recommends
:
apt-rdepends -f Depends,PreDepends,Recommends -s Depends,PreDepends,Recommends -p tcpdump
embora não forneça todas as dependências debfoster
encontradas nesse caso. (Por exemplo, debfoster
descobre que tcpdump
depende de apt
via libssl1.0.0
, debconf
e apt-utils
, mas apt-rdepends
não.)