Skip to main content
Version: 1.1.1

教程:使用 Git 将包发布到私有 kmpkg 注册表

在本教程中,我们将向您展示如何创建基于 Git 的私有注册表以及如何在所述注册表中发布包。

您可以使用 Git 创建自己的私有包注册表,以便通过 kmpkg 使用。私人的如果您想使用私有库或想要进行非公开修改,注册表是理想的选择 到现有的包。您可以完全控制软件包的版本和内容,因此对于可以放入私人注册表中的内容实际上没有任何限制。

在本教程中,我们将展示如何:

先决条件

  • kmpkg
  • Git
  • A terminal

1 - 使用 Git 创建 kmpkg 注册表

kmpkg 基于 Git 的注册表是具有 kmpkg 理解的特定布局的 Git 存储库。

初始化 Git 注册表:

mkdir kmpkg-registry
cd kmpkg-registry
git init

2 - 创建注册表布局

基于 Git 的 kmpkg 注册表需要以下内容:

  • 名为ports的文件夹,用于包含注册表的端口,
  • 名为versions的文件夹,用于包含版本数据库,
  • versions文件夹中名为baseline.json的文件。

您的存储库可以包含您想要的任何其他文件,例如:脚本、许可证文件、README.md 文件、文档等

1 - 创建portsversions文件夹:

mkdir ports
mkdir versions

2 - 在versions文件夹中创建一个名为baseline.json的文件,其中包含以下内容:

{
"default": {}
}

最小有效的baseline.json文件应包含上述内容。阅读 版本控制文档 了解有关 baseline.json 文件和版本的更多信息 数据库。

3 - 将您的更改提交到存储库

git add versions/baseline.json
git commit -m "Initial commit"

或者,如果您设置了远程 Git 存储库,那么这是推送更改的好时机。

git remote add origin https://example.com/kmpkg-registry.git
git push --set-upstream origin HEAD

3 - 将端口添加到注册表

将所有包端口复制到注册表中的ports文件夹中。每个端口必须有自己的 至少包含一个kmpkg.json文件和一个portfile.cmake文件的目录。了解更多关于 在打包 Gitee 存储库 教程中创建端口。

git add ports/.
git commit -m "Add registry ports"

4 - 更新版本数据库

注册表中的每个端口都必须有对应的版本文件。版本文件是由生成的kmpkg x-add-version 命令。此命令还会更新每个端口的基线条目 versions/baseline.json

要一次更新所有端口的版本数据库,请运行:

kmpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version --all --verbose

--x-builtin-ports-root--x-builtin-registry-versions-dir 是重定向选项。通常,“x-add-version”命令在 kmpkg 的内置注册表上运行;但通过使用 重定向选项,可以在本地 Git 注册表上使用该命令。

--all 选项使 kmpkg 扫描 ports 目录以查找所有可用端口并更新它们一下子。最后,“--verbose”选项使命令打印它执行的每个操作 标准输出,您可以通过删除此选项来抑制输出。

x-add-version 要求所有端口更改都已提交到注册表的 Git存储库。阅读 [x-add-version 命令] 文档以了解更多信息。

当所有输出看起来正确时,运行:

git add .
git commit -m "Update versions database"

如果您有远程 Git 存储库,请不要忘记推送更改:

git push

后续步骤

就是这样!您已经设置了自己的基于 Git 的私有注册表以与 kmpkg 一起使用。

以下是接下来要尝试的一些其他任务: