sda*_*aau 26 linux aptitude debian apt
我不确定这是否更像是 SuperUser 或 UnixLinux 问题,但我会在这里尝试...
最近,我发现了这个:
#710689 - aptitude:在树中使用 unicode 字符 - Debian 错误报告日志
当 aptitude 对依赖项列表中的树使用 unicode 字符时会很好,例如,而不是:
Run Code Online (Sandbox Code Playgroud)--\ 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 树 - 但有实际的软件包依赖关系?
我知道Debree - 包依赖关系图(还有软件推荐 - 如何直观地显示包的依赖关系? - 问 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)
...
Run Code Online (Sandbox Code Playgroud)
... 这很好,因为它首先列出了所需包的直接依赖项;然后是一级依赖包的依赖,依此类推——但它没有被可视化为树(实际上,当你展开依赖节点时,它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
--- ...
...
Run Code Online (Sandbox Code Playgroud)
小智 28
你可以用 bash 脚本来做
源代码:“apt-rdepends-tree”
https://gist.github.com/damphat/6214499
跑
# sudo apt-get install apt-rdepends
# save gist, above, as "apt-rdepends-tree"
# chmod +x apt-rdepends-tree
# ./apt-rdepends-tree gcc
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
# ./apt-rdepends-tree gcc
?? gcc
? ?? cpp (>= 4:4.7.2-1)
? ?? gcc-4.7 (>= 4.7.2-1)
?? package-a
?? package-b
?? package-c
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12326 次 |
最近记录: |