kmpkg depend-info
命令概要
kmpkg depend-info [options] <package>...
命令描述
显示一组端口包的依赖项。
depend-info 会以多种格式展示指定包集合的所有传递依赖项,包括纯文本列表(list)、树形结构(tree)、DGML 格式、DOT 格式或 Mermaid 格式。
该命令将指定的包集合视为一个组合请求(类似 kmpkg install <package>...),且不依赖已安装的包状态。
当指定多个三元组(默认三元组、主机三元组、按包指定的三元组)时,非默认三元组安装的包会被标记;
主机三元组的包会添加后缀 :host 标识。
示例
列表格式(list)
$ kmpkg depend-info ableton
kmpkg-cmake:
kmpkg-cmake-config:
asio: kmpkg-cmake, kmpkg-cmake-config
ableton-link: asio, kmpkg-cmake, kmpkg-cmake-config
ableton: ableton-link
树形格式(tree)
$ kmpkg depend-info ableton --format=tree
ableton
+-- ableton-link
+-- asio
| +-- kmpkg-cmake
| +-- kmpkg-cmake-config
+-- kmpkg-cmake
+-- kmpkg-cmake-config
DOT 格式
$ kmpkg depend-info ableton --format=dot
digraph G{ rankdir=LR; node [fontname=Sans]; edge [minlen=3]; overlap=false;
"kmpkg-cmake";
"kmpkg-cmake-config";
"asio";
"asio" -> "kmpkg-cmake";
"asio" -> "kmpkg-cmake-config";
"ableton-link";
"ableton-link" -> "asio";
"ableton-link" -> "kmpkg-cmake";
"ableton-link" -> "kmpkg-cmake-config";
"ableton";
"ableton" -> "ableton-link";
"2 singletons...";
}
DGML 格式
$ kmpkg depend-info ableton --format=dgml
<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="http://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
<Node Id="ableton"/>
<Node Id="ableton-link"/>
<Node Id="asio"/>
<Node Id="kmpkg-cmake"/>
<Node Id="kmpkg-cmake-config"/>
</Nodes>
<Links>
<Link Source="ableton" Target="ableton-link"/>
<Link Source="ableton-link" Target="asio"/>
<Link Source="ableton-link" Target="kmpkg-cmake"/>
<Link Source="ableton-link" Target="kmpkg-cmake-config"/>
<Link Source="asio" Target="kmpkg-cmake"/>
<Link Source="asio" Target="kmpkg-cmake-config"/>
</Links>
</DirectedGraph>
Mermaid 格式
$ kmpkg depend-info ableton --format=mermaid
flowchart TD;
ableton --> ableton-link;
ableton-link --> asio;
ableton-link --> kmpkg-cmake;
ableton-link --> kmpkg-cmake-config;
asio --> kmpkg-cmake;
asio --> kmpkg-cmake-config;
渲染后的流程图
多三元组 + 多包场景
$ ./kmpkg depend-info proj tiff[core] --triplet x64-windows-static-md
kmpkg-cmake:host:
kmpkg-cmake-config:host:
zlib: kmpkg-cmake:host
liblzma: kmpkg-cmake:host, kmpkg-cmake-config:host
curl[sspi, ssl, schannel, non-http]: kmpkg-cmake:host, kmpkg-cmake-config:host, zlib
nlohmann-json: kmpkg-cmake:host, kmpkg-cmake-config:host
sqlite3[json1, tool]:host: kmpkg-cmake:host, kmpkg-cmake-config:host
sqlite3[json1]: kmpkg-cmake:host, kmpkg-cmake-config:host
tiff[zip, lzma]: liblzma, kmpkg-cmake:host, kmpkg-cmake-config:host, zlib
proj[tiff, net]: curl, nlohmann-json, sqlite3:host, sqlite3, tiff, kmpkg-cmake:host, kmpkg-cmake-config:host
命令选项
所有 kmpkg 命令均支持一组通用选项。
--format=<format>
指定依赖项的输出格式:
list
默认格式,以纯文本列表形式输出。
tree
以类控制台 tree 命令的树形结构输出。
dot
以 DOT 图形描述语言 生成依赖树。
dgml
以 DGML(有向图标记语言) XML 格式生成依赖树。
mermaid
以 Mermaid 流程图语法格式生成依赖树。
--show-depth
在输出中显示依赖的递归深度。
仅支持 list 和 tree 格式。
--max-recurse=<depth>
设置依赖展示的最大递归深度。
值为 -1 表示无深度限制。
--sort=<type>
设置依赖列表的排序方式。
仅支持 list 格式。
排序选项:
lexicographical- 按名称字典序排序topological- (默认)按深度递增排序reverse- 按深度递减排序