Nie jestem pewien, czy jest to raczej pytanie SuperUser czy UnixLinux, ale spróbuję tutaj ...
Ostatnio znalazłem to:
# 710689 - aptitude: użyj znaków Unicode na drzewach - dzienniki raportów błędów Debiana
Byłoby miło, gdyby aptitude użył znaków Unicode dla drzew na listach zależności, np. Zamiast:
--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev
...
... i pomyślałem - wow, naprawdę podoba mi się to drzewo ASCII-art, nie wiedziałem, że to aptitude
może zrobić! Więc zaczynam bałagan na godzinę za pomocą aptitude
przełączników wiersza poleceń - i po prostu nie mogę uzyskać tego wyniku? Więc moje początkowe pytanie brzmiało - skąd w ogóle pochodzi ta produkcja ?!
Po chwili zdałem sobie sprawę, że w moim systemie aptitude
ostatecznie dowiązania symboliczne do /usr/bin/aptitude-curses
; i w końcu zdałem sobie sprawę, że aptitude
ma curses
interfejs!:/
W końcu uruchamiam aptitude
bez żadnych argumentów - curses
interfejs się uruchamia i widzę coś takiego:
... więc całkiem oczywiste, te znaki drzewa ASCII pochodzą z interfejsu klątwy.
Zastanawiałem się więc - czy istnieje narzędzie Debian / apt, które wyświetli takie „wizualne” drzewo ASCII - ale przy rzeczywistych zależnościach pakietów?
Wiem o zadłużeniu - Wykresy zależności pakietów (także zalecenia dotyczące oprogramowania - Jak wizualnie wyświetlać zależności pakietu? - Zapytaj Ubuntu ); ale wolę mieć coś w terminalu, przypominające drzewo katalogów (zamiast grafów „nieuporządkowanych” [pod względem pozycji węzła] debtree
, generowanych przez graphviz
's dot
).
Widziałem też Czy jest coś, co wizualnie pokaże zależności, jak drzewo? , który zaleca:
$ 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)
...
... co jest dobre, ponieważ najpierw wyświetla listę bezpośrednich zależności wymaganego pakietu; a następnie Zależności paczek zależność pierwszego stopnia, i tak dalej - ale to nie jest wizualizowane w postaci drzewa (a właściwie aptitude
„s curses
interfejs po prostu pokazuje zainstalowane informacji po rozwinięciu węzła zależności, ale nie rozszerza się na dalsze zależności).
Tak więc pytanie brzmi - czy istnieje narzędzie, które tworzy wykres drzewa zależności ze znakami końcowymi - jak, powiedzmy, w następującym pseudokodzie:
$ 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
--- ...
...