我不确定这是否更多是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树-但是与软件包的实际依赖关系?
我知道关于btreeree-软件包依赖关系图(也是软件推荐-如何以可视方式显示软件包的依赖关系?-Ask Ubuntu);但我宁愿在终端的东西,类似一个目录树(而不是“无序” [在节点位置条款]从图表debtree
,由产生graphviz
的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
的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
--- ...
...