Não tenho certeza se essa é mais uma pergunta do SuperUser ou do UnixLinux, mas vou tentar aqui ...
Recentemente, encontrei isto:
# 710689 - aptitude: use caracteres unicode nas árvores - Registros de relatórios de erros do Debian
It would be nice when aptitude would use unicode characters for the trees in the
dependency lists, e.g. instead of:
--\ Depends (3)
--- libc-dev-bin (= 2.17-3)
--- libc6 (= 2.17-3)
--- linux-libc-dev
--\ Suggests (2)
--- glibc-doc (UNSATISFIED)
--\ manpages-dev
...
... e eu pensei - uau, eu realmente gosto da saída da árvore de arte ASCII, não sabia que aptitude
poderia fazer isso! Então, começo a mexer por uma hora com as opções de linha de comando aptitude
- e simplesmente não consigo obter essa saída? Então, minha pergunta inicial foi: de onde vem essa saída, em primeiro lugar?!
Depois de um tempo, percebi que no meu sistema, aptitude
finalmente faz o symlink para /usr/bin/aptitude-curses
; e finalmente percebi que aptitude
tem uma interface curses
! :/
Então, eu finalmente corro aptitude
sem nenhum argumento - e então a interface curses
começa, e eu posso ver algo assim:
...éóbvioqueessescaracteresdeárvoreASCIIvêmdainterfacedecurses.
Entãoeuestavapensando-existeumaferramentaDebian/apt,queproduziráumaárvoreASCII"visual" - mas com dependências reais de pacotes?
Eu sei sobre debtree - Gráficos de dependência de pacotes (também recomendação de software - Como exibir visualmente as dependências de um pacote? - Ask Ubuntu ); mas eu prefiro ter algo no terminal, semelhante a uma árvore de diretórios (em vez dos gráficos "não ordenados" [em termos de posição do nó] de debtree
, gerados por graphviz
' dot
).
Eu também vi Há alguma coisa que mostre as dependências visualmente, como uma árvore? , que recomenda :
$ apt-rdepends aptitude
Reading package lists... Done
Building dependency tree
Reading state information... Done
aptitude
Depends: libapt-pkg4.10
Depends: libboost-iostreams1.42.0 (>= 1.42.0-1)
Depends: libc6 (>= 2.4)
Depends: libcwidget3
Depends: libept1
Depends: libgcc1 (>= 1:4.1.1)
Depends: libncursesw5 (>= 5.7+20100313)
Depends: libsigc++-2.0-0c2a (>= 2.0.2)
Depends: libsqlite3-0 (>= 3.7.3)
Depends: libstdc++6 (>= 4.5)
Depends: libxapian22
libapt-pkg4.10
libboost-iostreams1.42.0
Depends: libbz2-1.0
Depends: libc6 (>= 2.3.6-6~)
Depends: libgcc1 (>= 1:4.1.1)
Depends: libstdc++6 (>= 4.2.1)
Depends: zlib1g (>= 1:1.1.4)
...
... o que é bom, porque lista primeiro as dependências imediatas do pacote requerido; e, em seguida, as dependências dos pacotes de dependência de primeiro nível, e assim por diante - mas não é visualizado como uma árvore (e, na verdade, aptitude
' curses
interface simplesmente mostra informações instaladas quando você expande o nó de dependência; ele não expande para outras dependências).
Então, a questão é - existe uma ferramenta, que produziria um gráfico de árvore de dependência com caracteres de terminal - como, por exemplo, no seguinte pseudocódigo:
$ pseudo-deb-graph --show-package="aptitude"
aptitude
--- Depends: libapt-pkg4.10
--\ Depends: libboost-iostreams1.42.0 (>= 1.42.0-1)
--- Depends: libbz2-1.0
--- Depends: libc6 (>= 2.4)
--\ Depends: libc6 (>= 2.3.6-6~)
--\ Depends: libc-bin (= 2.13-0ubuntu13)
--- ...
--\ Depends: libgcc1
--- ...
--\ Depends: tzdata
--- ...
...