Não tenho certeza se isso é mais uma pergunta de SuperUser ou UnixLinux, mas vou tentar aqui ...
Recentemente, eu encontrei isso:
# 710689 - aptitude: use caracteres unicode nas árvores - registros de relatórios de erros do Debian
Seria bom quando o aptitude usasse caracteres unicode para as árvores nas listas de dependências, por exemplo, em vez de:
--\ 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 em árvore da arte ASCII, não sabia que aptitude
poderia fazer isso! Então, começo a mexer por uma hora com aptitude
opções de linha de comando - e simplesmente não consigo obter essa saída? Então, minha pergunta inicial foi: de onde vem essa saída?
Depois de um tempo, percebi que no meu sistema, aptitude
finalmente , os links para /usr/bin/aptitude-curses
; e finalmente percebi que aptitude
tem uma curses
interface!:/
Então, eu finalmente corro aptitude
sem argumentos - e então a curses
interface é iniciada, e posso ver algo assim:
... então, obviamente, esses caracteres de árvore ASCII vêm da interface de maldições.
Então, eu estava pensando - existe uma ferramenta Debian / apt que produzirá uma árvore ASCII "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 dependências de um pacote? - Pergunte ao 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ó] debtree
, gerados por graphviz
's dot
).
Eu também vi. Existe algo que mostre 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 necessário; e depois as dependências dos pacotes de dependência de primeiro nível e assim por diante - mas não são visualizadas como uma árvore (e, na verdade, aptitude
a curses
interface do simplesmente mostra as informações instaladas quando você expande o nó de dependência; não se expande para outras dependências).
Portanto, a questão é - existe uma ferramenta que produziria um gráfico de árvore de dependência com caracteres terminais - como, por exemplo, no pseudocódigo a seguir:
$ 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
--- ...
...