Koji/ServerBootstrap/zh-cn

= 准备一个新的 Koji 编译环境 = 这里讲解了将软件包导入到 Koji 服务器中用来编译RPM包的步骤. 前提是您已经成功搭建好了 Koji hub，配置好了合适的认证机制，维护 Koji 库的守护进程也已经配置好并且能正常运行了，系统中至少配置了一台 Koji 编译机并且运行正常. 我们假设本文中所有的终端命令是以 Koji 系统管理员的身份运行的. 如果您需要搭建 Koji 系统方面的帮助信息，请阅读 ServerHowTo.


 * 下载所有的源 rpm 包和您感兴趣的系统架构对应的编译好的二进制 rpm 包.

$ koji import /path/to/package1.src.rpm /path/to/package2.src.rpm ... 如果这些文件与 /mnt/koji 位于同一个分区中，您可以使用 ，这条命令将会创建硬链接，将需要导入的文件链接到合适的位置，这样就避免了上传文件到 koji hub 的过程，可以显著地增加导入速度. 如果想使用参数 ，您必须使用 root 身份. 强烈建议您使用参数.
 * 导入所有的源 rpm 包


 * 使用上面同样的命令导入所有的二进制 rpm 包

$ koji add-tag dist-foo
 * 创建一个新标签

您可以使用  列出导入的所有软件包. $ koji list-pkgs --quiet | xargs koji add-pkg --owner dist-foo $ koji list-untagged | xargs -n 1 koji call tagBuildBypass dist-foo 我们调用了 tagBuildBypass 方法而不是提交  任务，因为它不需要编译机逐个执行 tagBuild 任务，而是直接将软件包加入到标签中了. 这将节省大量的时间，尤其是在您需要处理大量软件包的时候.
 * 将您导入的所有软件包加入到刚刚创建的标签中

$ koji add-tag --parent dist-foo --arches "i386 x86_64 ppc ppc64" dist-foo-build
 * 以您前面创建的标签为父标签，创建一个包含您所需系统架构的编译标签

$ koji add-target dist-foo dist-foo-build
 * 创建一个编译目标包含您前面已经创建的两个标签

$ koji add-group dist-foo-build build
 * 创建一个与您的编译标签有关的 build 分组

通过在 Fedora 社区官方编译系统上运行  您可以查看 Fedora 系统当前 build 分组中包含的软件包列表. 也许这是您构建自己的最小编译环境的一个很好的起点. $ koji add-group-pkg dist-foo-build build pkg1 $ koji add-group-pkg dist-foo-build build pkg2
 * 将构建最小编译环境的软件包添加到这个 build 分组中


 * 等待重新生成库，现在您就可以成功执行软件包编译任务了.