Я не впевнений, чи це більше питання щодо SuperUser або UnixLinux, але я спробую тут ...
Нещодавно я виявив таке:
# 710689 - здатність: використовувати символи unicode в деревах - журнали звітів про помилки Debian
Було б добре, коли aptitude використовує символи unicode для дерев у списках залежностей, наприклад замість:
--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev
...
... і я подумав - ух, мені дуже подобається, що таке дерево ASCII-мистецтва, не знав, що aptitude
може це зробити! Отже, я починаю возитися на годину з aptitude
перемикачами командного рядка - і я просто не можу отримати цей вихід? Тож моє первинне запитання було - звідки в першу чергу береться цей результат ?!
Через деякий час я зрозумів, що в моїй системі, aptitude
зрештою, це посилається на /usr/bin/aptitude-curses
; і я нарешті зрозумів, що aptitude
має curses
інтерфейс!:/
Отже, я нарешті запускаюсь aptitude
без жодних аргументів - і так curses
запускається інтерфейс, і я бачу щось подібне:
... так очевидно, що ці символи дерева ASCII походять з інтерфейсу curses.
Тож мені було цікаво - чи існує інструмент Debian / apt, який видасть таке «візуальне» дерево ASCII - але з реальною залежністю пакетів?
Я знаю про заборгованість - графіки залежності пакетів (також рекомендація щодо програмного забезпечення - як візуально відображати залежності пакету? - запитати Ubuntu ); але я вважаю за краще щось у терміналі, що нагадує дерево каталогів (а не графіки з "не упорядкованого" [з точки зору положення вузла] debtree
, породженого graphviz
's dot
).
Я також бачив, чи є щось, що візуально відображатиме залежності, як дерево? , який рекомендує:
$ 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)
...
... що добре, оскільки в ньому перераховано спочатку безпосередні залежності необхідного пакету; а потім залежно пакетів залежностей першого рівня, і так далі - але це не представимо у вигляді дерева (а на справді, aptitude
«s curses
інтерфейс просто показує встановлену інформацію , коли ви розширюєте вузол залежностей, він не розширюється до подальших залежностей).
Отже, питання - чи є інструмент, який би створював графік дерева залежності із символами терміналу - як, скажімо, у наступному псевдокоді:
$ 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
--- ...
...