github.com/KusionStack/kpm@v0.8.4-0.20240326033734-dc72298a30e5/docs/publish_your_kcl_packages-zh.md (about) 1 # 如何使用 kpm 与他人分享您的 kcl 包 2 3 [kpm](https://github.com/KusionStack/kpm) 是一个用于管理 kcl 包的工具。本文将指导您如何使用 kpm 将您的 kcl 包推送到发布到 OCI Registry 中。kpm 默认使用 [ghcr.io](https://ghcr.io) 作为 OCI Registry, 您可以通过修改 kpm 配置文件来更改默认的 OCI Registry。关于如何修改 kpm 配置文件的信息,请参阅 [kpm oci registry](./kpm_oci-zh.md#kpm-registry) 4 5 下面是一个简单的步骤,指导您如何使用 kpm 将您的 kcl 包推送到 ghcr.io。 6 7 ## 步骤 1:安装 kpm 8 9 首先,您需要在您的计算机上安装 kpm。您可以按照 [kpm 安装文档](https://kcl-lang.io/docs/user_docs/guides/package-management/installation)中的说明进行操作。 10 11 ## 步骤 2:创建一个 ghcr.io 令牌 12 13 如果您使用 kpm 默认的 OCI Registry, 要将 kcl 包推送到 ghcr.io,您需要创建一个用于身份验证的令牌。您可以参考以下文档。 14 15 - [创建 ghcr.io token](https://docs.github.com/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) 16 17 ## 步骤 3:登录 ghcr.io 18 19 在安装了 kpm 并创建了 ghcr.io 令牌后,您需要使用 kpm 登录 ghcr.io。您可以使用以下命令进行操作: 20 21 ```shell 22 kpm login -u <USERNAME> -p <TOKEN> ghcr.io 23 ``` 24 25 其中 `<USERNAME>` 是您的 GitHub 用户名,`<TOKEN>` 是您在步骤 2 中创建的令牌。 26 27 关于如何使用 kpm 登录 ghcr.io 的更多信息,请参阅 [kpm login](./kpm_oci-zh.md#kpm-login)。 28 29 ## 步骤 4:推送您的 kcl 包 30 31 现在,您可以使用 kpm 将您的 kcl 包推送到 ghcr.io。 32 33 ### 1. 一个合法的 kcl 包 34 35 首先,您需要确保您推送的内容是符合一个 kcl 包的规范,即必须包含合法的 kcl.mod 和 kcl.mod.lock 文件。 36 37 如果您不知道如何得到一个合法的 `kcl.mod` 和 `kcl.mod.lock`。您可以使用 `kpm init` 命令。 38 39 ```shell 40 # 创建一个名为 my_package 的 kcl 包 41 kpm init my_package 42 ``` 43 44 `kpm init my_package` 命令将会为您创建一个新的 kcl 包 `my_package`, 并为这个包创建 `kcl.mod` 和 `kcl.mod.lock` 文件。 45 46 如果您已经有了一个包含 kcl 文件的目录 `exist_kcl_package`,您可以使用以下命令将其转换为一个 kcl 包,并为其创建合法的 `kcl.mod` 和 `kcl.mod.lock`。 47 48 ```shell 49 # 在 exist_kcl_package 目录下 50 $ pwd 51 /home/user/exist_kcl_package 52 53 # 执行 kpm init 命令来创建 kcl.mod 和 kcl.mod.lock 54 $ kpm init 55 ``` 56 57 关于如何使用 kpm init 的更多信息,请参阅 [kpm init](./command-reference-zh/1.init.md)。 58 59 ### 2. 推送 kcl 包 60 61 您可以在 `kcl` 包的根目录下使用以下命令进行操作: 62 63 ```shell 64 # 在 exist_kcl_package 包的根目录下 65 $ pwd 66 /home/user/exist_kcl_package 67 68 # 推送 kcl 包到默认的 OCI Registry 69 $ kpm push 70 ``` 71 72 完成上述步骤后,您就成功地将您的 kcl 包推送到了默认的 OCI Registry 中。 73 关于如何使用 kpm push 的更多信息,请参阅 [kpm push](./kpm_oci-zh.md#kpm-push)。