Como exibir visualmente dependências de um pacote?

31

Isso é apenas por diversão e curiosidade: existe uma ferramenta que permite visualizar visualmente as dependências de um pacote como um gráfico?

Ou seja, os pacotes dos quais um determinado pacote depende. Pode ser uma ferramenta de linha de comando que é exibida usando gráficos ASCII (como árvore ou graphlog do Mercurial) ou uma ferramenta GUI que mostra visualmente o gráfico de dependência. Qualquer outra combinação de ferramentas que possa mostrar as dependências visualmente também funciona.

Ashwin Nanjappa
fonte
E quais seriam os eixos do gráfico?
1
@ vasa1: Vértices seriam pacotes e arestas são as dependências.
Ashwin Nanjappa

Respostas:

34

debtree

De acordo com o site do aplicativo , o debtreepacote fornece "gráficos de dependência de pacotes com esteróides" .

Nota: Isso também é muito útil ao planejar atualizações de software. Este aplicativo é capaz de representar graficamente dependências em relação aos pacotes que ainda não foram instalados no seu sistema. Isso lerá o sources.listarquivo (geralmente localizado em /etc/apt/sources.list) e executará uma consulta ao vivo usando essa lista.

O diagrama a seguir é um exemplo de execução debtreeno pacote dpkg. Aqui está um mapa de suas dependências:

Para instalar a debtreepartir da linha de comando ( Ctrl- Alt- t), digite o comando:

sudo apt-get install debtree

Uso

  • Crie um arquivo .dot (um desenho de gráfico direcionado - consulte a página de man dotmanual)

    debtree --with-suggests <package> >out.dot
    
  • Crie um gráfico (PNG) a partir de um arquivo .dot

    dot -T png -o out.png out.dot
    
  • Crie um gráfico (Postscript) e visualize-o usando o Okular

    debtree <package> | dot -Tps | okular - &
    

Esteja ciente de que, ao executar este aplicativo em pacotes maiores (ou seja, gedit), as imagens podem rapidamente se tornar pesadas e ilegíveis.

Observe que apt-rdependstambém pode ser usado de maneira semelhante, mas a saída da tubulação para um gráfico é um pouco mais complicada, na minha opinião.

Veja também: Página de manual do Ubuntu debtree

Kevin Bowen
fonte
1
--no-skipou até --show-allsão opções muito úteis para incluir mais pacotes como libc6.
logoff
2

Talvez não seja tão "gráfico", mas se você preferir não instalar nenhum pacote extra, também terá a possibilidade de executar

apt-cache rdepends <package>

Você também pode querer dar uma olhada na dependsopção.

Você também tem:

  • apt rdepends <package>
  • Use este script ,apt-rdepends-tree <package>
  • apt-rdepends <package>ou como debtree apt-rdepends --dotty package | springgraph > dependencies.png
Pablo A
fonte
1

A ferramenta de linha de comando Apitude é uma ótima ferramenta para analisar dependências. sem gráficos sofisticados, mas fornece uma boa representação hierárquica de dependências para um pacote específico.

Ntc
fonte
Nathan Cazell: Você poderia elaborar como eu posso visualizar esse gráfico hierárquico para um determinado pacote?
Ashwin Nanjappa
quando você abre o Aptitude, basta procurar um pacote usando / e pressionar enter para o pacote desejado e ele mostrará todas as informações sobre o pacote, incluindo uma árvore de dependências com dependências não atendidas e também pacotes conflitantes.
Ntc 02/02
Nathan Cazell: Você está se referindo à ferramenta de aptidão da linha de comando?
Ashwin Nanjappa 03/03
Editado. Desculpe por não esclarecer mais cedo
Ntc