Я не уверен, что это вопрос SuperUser или UnixLinux, но я попробую здесь ...
Недавно я нашел это:
# 710689 - aptitude: использовать символы юникода в деревьях - Журналы отчетов об ошибках Debian
Было бы хорошо, если бы aptitude использовала символы юникода для деревьев в списках зависимостей, например, вместо:
--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev
...
... и я подумал - вау, мне действительно нравится этот вывод дерева ASCII-art, я не знал, что это aptitude
может сделать! Итак, я начинаю в течение часа возиться с aptitude
переключателями командной строки - и я просто не могу получить этот вывод? Итак, мой первоначальный вопрос был - откуда этот вывод?
Через некоторое время я понял, что в моей системе, в aptitude
конечном счете, символические ссылки /usr/bin/aptitude-curses
; и я наконец понял, что aptitude
имеет curses
интерфейс!:/
Итак, я наконец запускаю aptitude
без каких-либо аргументов - и поэтому curses
интерфейс запускается, и я вижу что-то вроде этого:
... совершенно очевидно, что эти символы дерева ASCII происходят из интерфейса curses.
Поэтому мне было интересно - есть ли инструмент Debian / apt, который будет выводить такое «визуальное» дерево ASCII - но с фактическими зависимостями пакетов?
Я знаю о debtree - Графики зависимостей пакетов (также рекомендации по программному обеспечению - Как визуально отобразить зависимости пакетов? - Спросите 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
--- ...
...