From Fedora Project Wiki
No edit summary
Line 1: Line 1:
{{autolang}}
{{autolang}}
= Bootstrapping a new Koji build environment =
= 准备一个新的 Koji 编译环境 =
These are the steps involved in populating a new Koji server with packages so that it can be used for building.  This assumes that the Koji hub is up, appropriate authentication methods have been configured, the Koji repo administration daemon (<code>kojira</code>) is properly configured and running, and at least one Koji builder (<code>kojid</code>) is properly configured and running.  All koji cli commands assume that the user is a Koji ''admin''.  If you need help with these tasks, see the [[Koji/ServerHowTo| ServerHowTo]] .
这里讲解了将软件包导入到 Koji 服务器中用来编译RPM包的步骤。前提是您已经成功搭建好了 Koji hub,配置好了合适的认证机制,维护 Koji 库的守护进程(<code>kojira</code>)也已经配置好并且能正常运行了,系统中至少配置了一台 Koji 编译机(<code>kojid</code>)并且运行正常。我们假设本文中所有的终端命令是以 Koji ''系统管理员''的身份运行的。如果您需要搭建 Koji 系统方面的帮助信息,请阅读[[Koji/ServerHowTo| ServerHowTo]] .


* Download all source rpms and binary rpms for the arches you're interested in
* Download all source rpms and binary rpms for the arches you're interested in

Revision as of 02:08, 24 March 2012

准备一个新的 Koji 编译环境

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

  • Download all source rpms and binary rpms for the arches you're interested in
  • Import all source rpms
$ koji import /path/to/package1.src.rpm /path/to/package2.src.rpm ...

If the files are on the same volume as /mnt/koji, you can use koji import --link, which hardlinks the files into place, avoiding the need to upload them to the hub and very significantly increasing import speed. When using --link, you must run as root. It is highly recommended that you use --link.

  • Import all binary rpms using the same method as above
  • Create a new tag
$ koji add-tag dist-foo
  • Tag all of the packages you just imported into the tag you just created

You can use koji list-untagged to get a list of all of the packages you just imported.

$ koji list-pkgs --quiet | xargs koji add-pkg --owner <kojiuser> dist-foo
$ koji list-untagged | xargs -n 1 koji call tagBuildBypass dist-foo

We call the tagBuildBypass method instead of using koji tag-pkg because it doesn't require the builders to process tagBuild tasks one at a time, but does the tagging directly. This will save a significant amount of time, especially when tagging a large number of packages.

  • Create a build tag with the desired arches, and the previously created tag as a parent
$ koji add-tag --parent dist-foo --arches "i386 x86_64 ppc ppc64" dist-foo-build
  • Create a build target that includes the tags you've already created
$ koji add-target dist-foo dist-foo-build
  • Create a build group associated with your build tag
$ koji add-group dist-foo-build build
  • Populate the build group with packages that will be installed into the minimal buildroot

You can find out what the current build group for Fedora is by running koji list-groups f16-build against the Fedora Koji instance. This is probably a good starting point for your minimal buildroot.

$ koji add-group-pkg dist-foo-build build pkg1
$ koji add-group-pkg dist-foo-build build pkg2
  • Wait for the repo to regenerate, and you should now be able to run a build successfully.