输出 dot 格式的包依赖关系图,可以用 graphviz 生成图片。
使用
# 安装
sudo apt install debtree -y
# 输出依赖关系
debtree git > debtree.dot
# 使用 graphviz 生成图片
dot -T png -o debtree.png debtree.dot
# 看图
eog debtree.png
颜色:
- 红 冲突
- 绿 提供
- 蓝 依赖
其他
skiplist 和 endlist
很简单,就一行一个就行了。
优先使用命令行参数,然后是 ~/.debtree/ 目录,然后再是 /etc/debtree 目录。
/etc/debtree/skiplist
,~/.debtree/skiplist
/etc/debtree/endlist
,~/.debtree/endlist
相关参数:
--no-skip # 将 skip 当作 end
--skiplist=file
--endlist=file
--show-all
参数
--show-installed, -I
--show-rdeps, -R
--build-dep, -b
--arch=architecture
--with-suggests, -S
--no-recommends
--no-alternatives
--no-provides
--max-providers=number
--no-versions
--no-conflicts
--versioned-conflicts, -VC
--max-depth=number
--rdeps-depth=number
--max-rdeps=number
--no-skip
--skiplist=file
--endlist=file
--show-all
--rotate, -r
--condense # 就是在 dot 文件中增加一行:concentrate=true, 对线条进行合并
--quiet, -q
--verbose, -v
在生成图片之前,除了可以直接对 dot 文件进行编辑处理,还可以通过参数对依赖关系进行筛选。
rm -f /tmp/endlist && cp /etc/debtree/endlist /tmp/endlist
echo libgtk-3-0 >> /tmp/endlist
echo apt >> /tmp/endlist
debtree --endlist=/tmp/endlist --no-recommends --no-alternatives --no-provides --no-versions --condense code > debtree.dot
dot -T png -o debtree.png debtree.dot
rm -f /tmp/endlist && cp /etc/debtree/endlist /tmp/endlist
echo util-linux >> /tmp/endlist
echo libcups2 >> /tmp/endlist
echo libxt-dev >> /tmp/endlist
debtree -R --rdeps-depth=1 -I --endlist=/tmp/endlist --no-versions --condense openjdk-8-jdk > debtree.dot
dot -T png -o debtree.png debtree.dot
eog debtree.png