欢迎使用Koji的文档!

Koji公司

Koji是构建Fedora项目的RPM包.它使用嘲弄创建chroot环境以执行构建。要下载源代码、报告错误、加入邮件列表等,请参阅Koji项目网站.

目录

HowTos公司

在Fedora上设置和使用Koji:

Koji建筑

术语

在Koji中,有时需要区分一般的包装,包的特定构建,以及构建创建的各种rpm文件。当需要精度时,这些术语应解释如下:

包裹

源rpm的名称。这通常指的是包装,而不是任何特定的构建或子包。例如:内核、glibc等。

生成

包的特定构建。这指的是整个构建:全部拱门和子包装。例如:kernel-2.6.9-34EL、glibc-2.3.4-2.19。

每分钟转数

特定转速。构建的特定架构和子包。例如:内核-2.6.9-34.EL.x86_64,内核级别2.6.9-34.EL.s390,glibc-2.3.4-2.19i686,glibc-common-2.3.4-2.19ia64

Ken的视频.

Koji组件

Koji组件结构图

Koji由几个组件组成:

Koji枢纽

koji-hub是所有koji运营的中心。它是一个运行的XML-RPC服务器在Apache中的mod_wsgi下。koji-hub是被动的,因为它只接收XML-RPC调用并依赖构建守护进程和其他组件来启动沟通。koji-hub是唯一可以直接访问数据库,是对文件具有写访问权限的两个组件之一系统。

科吉德

kojid是在每个构建机器上运行的构建守护进程。它的主要功能职责是轮询传入的构建请求并处理它们相应地。从本质上说,科吉要求科吉胡布工作。科吉也得到了支持用于建筑以外的任务。创建安装映像就是一个示例。曲奇负责处理这些任务。kojid使用mock进行构建。它还为每个构建创建了一个新的buildroot。kojid是用Python写的并通过XML-RPC与koji-hub通信。

Koji-Web公司

koji-web是一组在mod_wsgi中运行并使用Cheetah的脚本为Koji提供web界面的模板引擎。它充当客户机koji-hub提供了一个可视化界面来执行有限的管理。koji-web公开了大量信息,也提供了一种方法对于某些操作,例如取消生成。

Koji-客户端

koji-client是一个用Python编写的CLI,它为koji提供了许多钩子。允许用户查询大部分数据并执行以下操作添加用户并启动构建请求。

Kojira公司

kojira是保持构建根repodata更新的守护程序。它是负责删除多余的生成根并在生成后清理请求已完成。

程序包组织

标签和目标

Koji使用标签组织包裹:

  • 标签在数据库中跟踪,但不在磁盘上

  • 标签支持多重继承

  • 每个标记都有自己的有效包列表(可继承)

  • 可以为每个标记设置包所有权(可继承)

  • 标记继承更具可配置性

  • 构建时,指定的是目标而不是标记

生成目标指定应在何处生成包以及应如何生成包之后标记。这允许目标名称在标记更改时保持固定通过发布。您可以通过以下方式获得构建目标的完整列表命令:

$koji列表目标

您可以使用–name选项只看到一个目标:

$koji列表目标--名称dist-fc7名称生成根目标---------------------------------------------------------------------------------------------dist-fc7 dist-fc7构建dist-fc7

这告诉您目标dist-fc7的构建将使用带有包的buildroot从标记dist-fc7构建并将结果包标记为dist-fc7。

您可以使用以下命令获取标记列表:

$koji列表袋

程序包列表

如上所述,每个标签都有自己的包裹列表,可以放在标签。要查看标记的列表,请使用list-pkgs命令:

$koji list-pkgs--标记dist-fc7包装标签额外拱所有者---------------------------------------------------------------------------电气围栏距离-fc6 pmachataGConf2 dist-fc6单极lucene dist-fc6数据库孔lvm2 dist-fc6 lvm团队图像Magick dist-fc6 nmurraym17n-db dist-fc6 majainm17n-lib dist-fc6 majainMAKEDEV dist-fc6块[...]

第一列是包的名称,第二列告诉您包条目已从继承,第三个条目告诉您包裹。

最新生成

要查看标记的最新版本,请使用latest-build命令:

$koji最新版本--全部dist-fc7构建标记构建者----------------------------------------  --------------------  ----------------控制台套件-0.1.0-5.fc7 dist-fc7 davidz电气围栏-2.2.2-20.2.2配电GConf2-2.16.0-6.fc7 dist-fc7麦克拉森ImageMagick-6.2.8.0-3.fc6.1 dist-fc6更新nmurrayMAKEDEV-3.23-1.2 dist-fc6网络MySQL-python-1.2.1_p2-2 dist-fc7 katzj网络管理器-0.6.5-0.3.cvs20061025.fc7 dist-fc7 caillonOR位2-2.14.6-1.fc7 dist-fc7 mclasen

输出不仅提供了最新的构建,还提供了它们的标记继承自和谁构建了它们(注意:对于从beehive导入的构建“构建者”字段可能具有误导性)。

文档

我们尽可能让Koji进行自我记录。命令行该工具将打印有效命令的列表,每个命令都支持–help。例如:

$koji帮助Koji命令包括:生成从源生成包取消任务取消任务help列出可用命令最新版本打印标记的最新版本[...]
$koji构建--帮助用法:koji build[options]标记URL(为其他帮助选项列表指定--help全局选项)选项:-h、 --帮助显示此帮助消息并退出--skip-tag不要尝试标记包裹--scratch执行scratch构建--等等别等着建造[...]

您可以通过–admin查看administrator-only命令帮助。大多数用户会永远不要使用这些额外的命令,但如果您正在设置自己的Koji系统,您可能会发现它们非常有用。

$koji帮助--管理可用命令:add-external-repo创建外部回购和/或将其添加到标记add-group将组添加到标记add-group-pkg将包添加到组的包列表[...]

Koji部署

众所周知,Koji在许多地方也被使用,我们追踪他们第页。请随意添加条目。没有额外的您有义务这样做

Koji贡献者指南

如果您有兴趣提交修补程序、编写文档或归档bug这个部分是为你准备的。随着时间的推移,这将是学习的最佳场所如何参与。

索引和表格