KPM CLI 将在 v0.8.0 版本后被弃用,并且 KPM CLI 将被 KCL CLI 替代 - https://github.com/kcl-lang/cli.
受到影响的部分如下所示:
kpm
├── pkg
│ ├── api
│ ├── client
│ ├── cmd # KPM CLI 将在 v0.8.0 版本后被弃用.
│ ├── constants
│ ├── env
│ ├── errors
│ ├── git
│ ├── oci
│ ├── opt
│ ├── package
│ ├── reporter
│ ├── runner
│ ├── semver
│ ├── settings
│ ├── utils
│ └── version
├── scripts
├── test
│ └── e2e # KPM CLI 的 e2e 测试将在 v0.8.0 版本后被弃用.
├── ......
kpm
是 KCL 包管理器。kpm
会下载您的 KCL 包的依赖项、编译您的 KCL 包、制作可分发的包并将其上传到 KCL 包的仓库中。
kpm
将调用 KCL 编译器 来编译 KCL 程序。在使用 kpm
之前,您需要确保 KCL 编译器 已经成功安装。
使用以下命令来确保您已成功安装 KCL
。
kcl -V
您可以使用 go install
命令安装 kpm
。
go install kcl-lang.io/kpm@latest
如果您在执行完上述命令后,使用 kpm
时,无法找到命令 kpm
请参考:
您也可以从 Github release 中获取 kpm
,并将 kpm
的二进制文件路径设置到环境变量 PATH 中。
# KPM_INSTALLATION_PATH 是 `kpm` 二进制文件的所在目录.
export PATH=$KPM_INSTALLATION_PATH:$PATH
请使用以下命令以确保您成功安装了 kpm
。
kpm --help
如果你看到以下输出信息,那么你已经成功安装了 kpm
,可以继续执行下一步操作。
使用 kpm init
命令创建一个名为 my_package
的 kcl 程序包, 并且在我们创建完成一个名为 my_package
的包后,我们需要通过命令 cd my_package
进入这个包来进行后续的操作。
kpm init my_package
kpm
将会在执行 kpm init my_package
命令的目录下创建两个默认的配置文件 kcl.mod
和 kcl.mod.lock
。
- my_package
|- kcl.mod
|- kcl.mod.lock
|- # 你可以直接在这个目录下写你的kcl程序。
kcl.mod.lock
是 kpm
用来固定依赖版本的文件,是自动生成的,请不要人工修改这个文件。
kpm
将会为这个新包创建一个默认的 kcl.mod
。如下所示:
[package]
name = "my_package"
edition = "0.0.1"
version = "0.0.1"
然后,您可以通过 kpm add
命令来为您当前的库添加一个外部依赖。
如下面的命令所示,为当前包添加一个版本号为 1.27
并且名为 k8s
的依赖包。
kpm add k8s:1.27
kpm
会为您将依赖添加到 kcl.mod 文件中.
[package]
name = "my_package"
edition = "0.0.1"
version = "0.0.1"
[dependencies]
k8s = "1.27" # The dependency 'k8s' with version '1.27'
在当前包中创建 main.k
。
- my_package
|- kcl.mod
|- kcl.mod.lock
|- main.k # Your KCL program.
并且将下面的内容写入 main.k
文件中。
# 导入并使用外部依赖 `k8s` 包中的内容。
import k8s.api.core.v1 as k8core
k8core.Pod {
metadata.name = "web-app"
spec.containers = [{
name = "main-container"
image = "nginx"
ports = [{containerPort = 80}]
}]
}
你可以使用 kpm 编译刚才编写的 main.k
文件, 得到编译后的结果。
kpm run
从 kpm v0.2.0 版本开始,kpm 支持通过 OCI Registries 保存和分享 KCL 包。
了解更多如何在 kpm 中使用,查看 OCI registry 支持.
A: go install
默认会将二进制文件安装到 $GOPATH/bin
目录下,您需要将 $GOPATH/bin
添加到环境变量 PATH
中。