跳到主要内容

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

在输出中显示依赖的递归深度。

仅支持 listtree 格式。

--max-recurse=<depth>

设置依赖展示的最大递归深度。

值为 -1 表示无深度限制。

--sort=<type>

设置依赖列表的排序方式。

仅支持 list 格式。

排序选项:

  • lexicographical - 按名称字典序排序
  • topological - (默认)按深度递增排序
  • reverse - 按深度递减排序