跳到主要内容

kmpkg help

命令概要

kmpkg help [topic]

命令描述

help 命令会在终端中显示各类 kmpkg 命令和主题的相关信息。你可以指定特定主题以查看对应说明,也可不带任何参数执行该命令,查看所有可用命令的列表。

示例

查看所有命令列表:

> kmpkg help

用法: kmpkg <command> [--开关参数] [--选项=值] [参数] @响应文件
@响应文件 每行包含一个参数,会在该位置展开

包安装相关命令:
export 为已安装的端口创建独立的部署包
install 安装一个包
remove 卸载一个包
x-set-installed 安装、升级或移除包,使已安装的包完全匹配指定的集合
upgrade 重新构建所有过时的包

包发现相关命令:
x-check-support 测试某个端口是否受支持(无需构建)
depend-info 显示端口的依赖项列表
list 列出已安装的库
owns 在已安装的包中搜索指定文件的所属包
x-package-info 显示包的详细信息
portsdiff 对比两次提交之间端口版本的变更
search 搜索可构建的可用包
update 列出可升级的包

包操作相关命令:
add 向清单文件中添加依赖项
x-add-version 向版本数据库中添加版本信息
create 创建新端口
edit 编辑端口文件(可选使用 %EDITOR% 编辑器,默认使用 "code")
env 创建干净的 Shell 环境,用于开发或编译
format-manifest 格式化 kmpkg.json 文件
hash 获取文件的 SHA256 或 SHA512 哈希值
x-init-registry 创建空的 Git 注册表
new 创建新的清单文件
x-update-baseline 将清单文件中 Git 注册表的基线更新为这些注册表的 HEAD 提交

其他命令:
ci 尝试构建所有端口,用于 CI 测试
x-ci-verify-versions 检查版本数据库的完整性
contact 显示反馈用的联系信息
fetch 从系统或互联网获取指定内容
integrate 将 kmpkg 集成到机器、项目或 Shell 环境中

获取更多帮助:
help topics 显示完整的帮助主题列表
help <topic> 显示指定帮助主题的详细内容
help commands 显示完整的命令列表(包括此处未列出的小众命令)
help <command> 显示指定命令的详细帮助信息

更多帮助(含示例)请参阅 https://pub.kumose.cc/kmpkg

查看特定命令的帮助信息:

> kmpkg help add

概要:向清单文件中添加依赖项
示例:
kmpkg add port <端口名称>
kmpkg add port png
kmpkg add artifact <制品名称>
kmpkg add artifact cmake
选项:
--x-asset-sources=... 资源缓存源。详见 'kmpkg help assetcaching'
--binarysource=... 二进制缓存源。详见 'kmpkg help binarycaching'
--x-buildtrees-root=...
构建目录(实验性功能)
--downloads-root=... 下载目录(默认值:%KMPKG_DOWNLOADS%)
--host-triplet=... 主机三元组。详见 'kmpkg help triplet'(默认值:
%KMPKG_DEFAULT_HOST_TRIPLET%)
--x-install-root=... 已安装目录(实验性功能)
--overlay-ports=... 覆盖端口目录,或包含覆盖端口目录的父目录(也可通过 %KMPKG_OVERLAY_PORTS% 指定)
--overlay-triplets=... 覆盖三元组的目录(也可通过 %KMPKG_OVERLAY_TRIPLETS% 指定)
--x-packages-root=... 包目录(实验性功能)
--triplet=... 目标三元组。详见 'kmpkg help triplet'(默认值:%KMPKG_DEFAULT_TRIPLET%)
--kmpkg-root=... kmpkg 根目录(默认值:%KMPKG_ROOT%)
--version=... 要匹配的版本或版本范围;仅对制品有效

查看特定主题的帮助信息:

> kmpkg help versioning

版本控制功能允许你在清单文件中确定性地控制项目所使用依赖项的精确版本。

支持以下版本控制方案:
version 点分隔的数字序列(如 1.2.3.4)
version-date 日期格式(如 2021-01-01.5)
version-semver 语义化版本 2.0(如 2.1.0-rc2)
version-string 精确的、不可比较的版本(如 Vista)

每个版本还包含一个“端口版本(port-version)”,为非负整数。以文本形式展示时,若端口版本非零,会以井号(#)为后缀附加在主版本号之后。端口版本会在主版本号之后按字典序排序,例如:
1.0.0 < 1.0.0#1 < 1.0.1 < 1.0.1#5 < 2.0.0

清单文件可对使用的版本施加三种约束:
builtin-baseline 基线引用 kmpkg 代码仓库中的一个提交,为依赖图中的每个依赖项确定最低版本。
例如,若未指定其他约束(直接或传递),则版本会解析为顶层清单文件的基线版本。
传递依赖项的基线会被忽略。

version>= 在“dependencies”字段中,每个依赖项可列出最低版本约束。这些最低约束会在
传递依赖该库时生效。还可通过添加 '#' 后缀指定最低端口版本。

overrides 作为顶层清单文件使用时(例如在该目录下运行 `kmpkg install`),覆盖规则允许清单
文件跳过依赖解析流程,直接指定要使用的精确版本。这可用于处理版本冲突(如
`version-string` 类型的依赖项)。传递依赖时,覆盖规则不会生效。

Kmpkg 会选择满足所有适用约束的最低版本,包括顶层指定的基线版本,以及依赖图中的所有 "version>=" 约束。
保持库更新的最佳方式是更新基线引用,这能确保所有包(包括传递依赖)都得到更新。但若需独立更新某个包,
可使用 "version>=" 约束。
此外,包发布者可使用 "version>=" 约束,确保使用者至少使用某个依赖项的特定最低版本。例如,若某个库需要
boost-asio 1.70 中新增的 API,"version>=" 约束可确保即使存在单独的版本覆盖或跨注册表引用,传递依赖的
使用者也会使用足够高的版本。
示例清单文件:
{
"builtin-baseline": "a14a6bcb27287e3ec138dba1b948a0cdbc337a3a",
"dependencies": [
{ "name": "zlib", "version>=": "1.2.11#8" },
"rapidjson"
],
"overrides": [
{ "name": "rapidjson", "version": "2020-09-14" }
]
}
扩展文档请参阅 ' https://pub.kumose.cc/kmpkg/users/versioning'。

命令选项

所有 kmpkg 命令均支持一组通用选项