背景在ubuntu系统中默认使用deb包进行软件发布这里面有很复杂的软件依赖关系需要理清软件包直接的依赖关系可以使用以下一些工具debtree --no-recommends --max-depth3 ros-jazzy-desktop | dot -Tsvg -o desktop_fast.svg一定要加max-depth深度不然会无限递归耗时非常长。可以生成svg矢量图如果用win wsl可以直接用浏览器打开方便查看和搜索。也可以导出到txt进行查看也可以指定两个target找到依赖关系。比如我这里要查看的是为什么在ubuntu24 noble下面 ros2-jazzy还依赖的是qt5就可以看到 ros-jazzy-desktop依赖了ros-jazzy-turtlesimros-jazzy-rviz2这二者都依赖了 libqt5core5t64.也可以单独查找反向依赖debtree -R --max-depth3 --no-recommends libqt5core5t64 | dot -Granksep3 -Gsplinespolyline -Tsvg -o qt5_chain.svg不过这个会在所有的 repo包中去找所有依赖qt5core的包。我想找一个方法能快速找到 ros-jazzy-desktop 到 libqt5core5t64依赖链路手动的找到了前面说的两个但是没有找到合适的自动化工具尝试了 apt-rdepends 和 aptitude 都不好用只有 debtree相对靠谱但是得手动写代码进行二次处理。