Вывести визуальное (ASCII) дерево зависимостей Debian на терминал?

Я не уверен, что это вопрос SuperUser или UnixLinux, но я попробую здесь …

Недавно я нашел следующее:

  • Какое обходное решение следует использовать для преодоления проблемы с systemctl, отказывающегося разрешать файлы модулей, которые являются символическими ссылками?
  • как печатать, если строка содержит определенный шаблон и не печатать, если она не содержит шаблон
  • Как узнать недавно обновленные файлы
  • Быстро проверьте, работают ли многие сетевые хосты
  • Данные, записанные в / dev / pts / x внутри обработчика SIGINT (Ctrl + C), случайным образом отбрасываются
  • Разрешить пользователю читать домашние каталоги других пользователей
  • # 710689 – aptitude: используйте символ 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-art не знал, что aptitude может это сделать! Итак, я запускаю messing в течение часа с помощью команд командной строки aptitude и я просто не могу получить этот вывод? Итак, мой первоначальный вопрос: откуда это происходит?

    Через некоторое время я понял, что в моей системе aptitude конечном итоге символически ссылается на /usr/bin/aptitude-curses ; и я наконец понял, что у aptitude есть интерфейс curses ! :/

    Итак, я, наконец, запускаю aptitude без каких-либо аргументов, и поэтому начинается интерфейс curses , и я могу видеть что-то вроде этого:

    склонностей-проклятия-терминал

    … так что, очевидно, эти символы дерева ASCII происходят из интерфейса curses.

    Поэтому мне было интересно – есть ли инструмент Debian / apt, который выводит такое «визуальное» дерево ASCII, но с фактическими зависимостями пакетов?

    Я знаю о долгах – Графики зависимости пакетов (также рекомендации по программному обеспечению – Как визуально отображать зависимости пакета? – Спросить Ubuntu ); но я предпочел бы иметь что-то в терминале, похожее на дерево каталогов (а не на «неупорядоченные» [в терминах позиции узла] графики из debtree , генерируемые graphviz .

    Я также видел, есть ли что-то, что визуально визуализирует зависимости, например дерево? , который рекомендует:

     $ 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) ... 

    … это хорошо, потому что в нем перечислены первые зависимости требуемого пакета; а затем зависимостей пакетов зависимостей первого уровня и т. д., но он не визуализируется как дерево (и, фактически, интерфейс curses aptitude просто показывает установленную информацию при развертывании узла зависимостей, он не расширяется до дополнительных зависимостей) ,

    Таким образом, возникает вопрос: есть ли инструмент, который создавал бы граф дерева зависимостей с концевыми символами – например, в следующем псевдокоде:

     $ 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 --- ... ... 

  • Как загружать Linux с помощью rootfs в ОЗУ?
  • Где указано имя устройства по умолчанию (например, / dev / ttyUSBx)?
  • Shell Script mktemp, каков наилучший способ создания временного именованного канала?
  • Возможно ли, чтобы сценарий предварительной установки пакета Debian выполнял команды apt-get?
  • Autorepeat не работает
  • Почему мой пакет был установлен в / opt?
  • One Solution collect form web for “Вывести визуальное (ASCII) дерево зависимостей Debian на терминал?”

    Вы можете сделать это с помощью скрипта bash

    Исходный код: "apt-rdepends-tree"

    https://gist.github.com/damphat/6214499

    Бег

     # save code as "apt-rdepends-tree" # chmod +x apt-rdepends-tree # ./apt-rdepends-tree gcc 

    Результат выглядит следующим образом:

     # ./apt-rdepends-tree gcc ├─ gcc │ ├─ cpp (>= 4:4.7.2-1) │ └─ gcc-4.7 (>= 4.7.2-1) └─ package-a ├─ package-b └─ package-c 
    Linux и Unix - лучшая ОС в мире.