用户文档

本节包含Copr Build System用户的信息。您可以在以下位置找到正在运行的Copr实例http://copr.fedorainfracloud.org/.您可能还对开发人员文档下载.

快速入门

如果您对COPR构建系统完全陌生,请按照以下步骤快速进行设置:

  1. 在此处设置FAS帐户:https://accounts.fedoraproject.org网站.

  2. 登录COPR(COPR主页右上角的链接:https://copr.fedorainfracloud.org/).

  3. 访问https://copr.fedorainfracloud.org/api/.

  4. 将生成的身份验证令牌复制到您的~/.config/copr文件。

  5. 安装copr-cli工具:苏多 脱氧核糖核酸 安装 协同cli(如果您使用的是Fedora)。

  6. 运行copr-cli公司 创造 第一个项目 --色度 软呢帽生皮-x86_64创建第一个项目。

  7. 运行copr-cli公司 建造 第一个项目 <路径 你的 SRPM>启动您的第一个构建。

如果您还没有SRPM,请参阅https://rpm-packaging-guide.github.io/了解如何构建一个。

教程

请参阅屏幕截图教程视频教程对于与互动指南copr.fedoraproject.org公司.

如何启用copr存储库?

如何启用回购

公共Copr实例

Copr是一个自由软件,任何人都可以在中维护自己的实例Fedora Copr实例不符合他们的需求。这是一个列表已知Copr实例的数量:

实例

描述

链接

https://copr.fedorainfracloud.org


Fedora Copr实例,它也是
被视为默认Copr
许多用户和工具的实例。

联系人,问题

https://copr.stg.fedoraproject.org


Fedora Copr登台实例对于
测试即将发生的更改。
我们定期删除其所有数据。

https://eur.openeuler.openatom.cn

openEuler Copr实例

联系人,问题

生成源类型

Copr支持多种类型的构建源代码。

URL

这是当前一次提交多个生成的唯一方法。首先,您需要上传SRPM包,然后提供由空格或换行符分隔的URL。请注意,构建不保证单个启动的构建的顺序。

您还可以只输入rpm.spec文件(包元数据)的URL,该文件描述了不带包括实际的构建源。构建源在https下的公共服务器上再次可用,然后在SRPM构建过程中由COPR自动下载。

直接上传

如果您在本地存储了.spec文件或srpm,则可以使用此方法将其直接上载到从命令行(通过使用COPR-cli工具)或通过COPR web UI进行COPR。

供应链管理

此方法允许您从任何包含有效.spec文件的Git、DistGit或SVN存储库构建RPM。唯一必需的参数是克隆URL以及目标存储库是否将.spec文件放在一起如果包源位于根目录中,并且您希望从主HEAD进行构建,那么它将简单地工作。对于更复杂的情况,需要配置更多的东西。例如,您可能想指定子目录目标存储库的文件包源所在位置。请参见以下内容完整选项说明列表:

  • 类型:所指向的存储库的SCM类型克隆URL(换句话说,我们是否应该使用plain吉特git服务器用于后续克隆)。

  • 克隆URL:我们应该克隆哪个存储库来获取源。

  • 承诺:我们应该从克隆存储库的历史记录中检出什么标记、分支或提交。默认情况下,主分支的HEAD。

  • 子目录:应在何处执行后续SRPM构建命令(见下文)。路径是相对于存储库根的。

  • 等级库文件:相对于给定的规范文件的路径子目录。请注意,您可以选择使用锚定路径/(例如。/rpm/示例spec). 如果没有指定.spec文件将自动定位。

最后一个要配置的可选操作(除了通用构建配置选项)是SRPM构建方法。有四种选择:每千克转数,蒂托,蒂托试验,以及制作srpm:

每千克转数:默认方法。除了从任何Git或SVN构建包之外存储库,它还支持直接从距离Git存储库。请注意每千克转数(以及蒂托下面)不仅是生成SRPM,但实际上,它也是一个成熟的包管理器您可以从命令行使用它来维护您的(上游)项目。您可以阅读有关此工具的更多信息在这里.请注意,从2021年12月开始,Copr迁移到rpkg-直到v3,等等您的规范文件需要使用{{}}模板来符合.

蒂托:是一个强大的RPM包管理器,具有许多功能,如果您的项目是用Tito管理的,那么这就是您要选择用于生成SRPM的工具(即包管理器的众多功能之一)。选择此选项后,将使用最新的包GIT标记构建SRPM。请注意,此实用程序当前已不支持指定备用.spec文件,这意味着等级库字段使用此选项时会忽略,.spec文件将始终自动定位。请注意,此工具与每千克转数目标存储库需要用初始化蒂托 初始化在使用此工具之前从中构建SRPM。您可以阅读更多在这里.

蒂托试验:选择此选项后蒂托实用程序将用于构建SRPM,但这一次承诺上面指定的值(如果没有,则为主分支的HEAD承诺将用于构建SRPM。这对应于使用--测试的开关蒂托当调用它来生成SRPM时。

制作srpm:使用此方法,用户自己将提供用于生成SRPM的可执行脚本。如果你想要使用此方法,您需要提供.copr/生成文件(路径相对于存储库根目录)srpm公司目标在您的存储库中。进入那个srpm公司目标,您可以放置生成SRPM所需的任何内容。您可以使用网络并克隆另一个存储库中,您可以安装新的软件包,您可以做几乎所有的事情,因为这是一个在内部以root权限运行的脚本模拟chroot。请注意,它是在与构建器主机的操作系统版本相同的模拟chroot中运行的(通常是最新发布的Fedora版本)。这样调用Makefile的目标:

制作 -(f) <克隆repodir>/。铜比/生成文件 srpm公司 外部(outdir)=“<outdir>” 规范=“<规范路径>”

这个规范参数是您在等级库文件SCM源规范和脚本的字段在中运行子目录您也可以在源代码部分中选择指定。请注意,您可以忽略这个规范文件参数外部(outdir)参数指定放置结果的位置SRPM,以便COPR可以在以后找到并构建它。

可以放入的内容示例.corp/Makefile文件:

$cd myrepo$cat.copr/生成文件srpm:dnf-y安装titotito build--builder=SomeBuilder--测试--srpm--输出=$(outdir)

请注意,其他工具(蒂托每千克转数)在指定的子目录也。

距离Git

有一个新选项可以从Copr中现有的DistGit实例构建(例如。,来自Fedora或CentOS DistGit)。要构建foo公司来自的包CentOS 8,可以做到:

$copr build-distgit<项目>--名称foo--distgit centos--提交c8

Fedora Rawhide套装更容易:

$copr build-distgit<项目>--名称foo

因为“fedora”distgit是默认值,我们会自动选择默认值分支。

注释

请注意,SRPM是从指定的DistGit实例下载的每次Copr构建仅一次,无论您的chroot数量如何为生成。

不是在一个Copr构建中,例如。软呢帽-37-x86_64chroot将由第37页分支,软呢帽-38-x86_64来自f38表格分支,以及软呢帽39-x86_64来自生皮分支。你可以,但是,请使用承诺字段指定DistGit应该使用分支(默认情况下,它是生皮对于Fedora DistGit公司).

来自您的DistGit分支的来源(例如。生皮)可以是与某些目标色度不兼容(例如。epel-8-x86_64)由于不同的依赖关系、构建工具等解决方法是提交多个构建,例如:

铜比 建造-分配(distgit) 发出砰的声响 --名称 <包裹> --改变根目录 软呢帽-生皮-x86_64码 --犯罪 生皮
铜比 建造-分配(distgit) 发出砰的声响 --名称 <包裹> --改变根目录 埃佩尔-8-x86_64码 --犯罪 epel8号机组

PyPI公司

使用此源类型,您可以直接从https://pypi.python.org/pypi.COPR翻译这些通过使用自动将包转换为src.rpm包转速2转/分工具。

RubyGems公司

与PyPI源类型类似,这允许从https://rubygems.org网站/.包翻译工具这里是吉姆2下午.

自定义(脚本)

此源类型使用用户定义的脚本生成源(稍后用于创建SRPM)。有关更多信息,请查看自定义源方法.

使用包

指定源构建方法(见上文)每个包的构建都会很不方便。但是,可以在Copr中定义包项目默认源然后只使用命令铜比 内置程序包 业主/项目 --姓名 包装_名称。添加或修改包装_名称默认源,选中男人 铜比对于铜比 添加包装-*铜比 编辑包装-*命令的说明。对于示例 构建-分发build命令具有铜比 add-package-distgit铜比 编辑-打包-分发同行。

这个包装_名称默认的源条目也是用第一个项目中的包生成。因此,在铜比 构建-分发操作,您可以跳过添加包装-*命令并直接转到编辑包装-*命令。

请参阅演示:使用软件包

在本地重新生成生成

有一份单独的文件本地复制Copr生成.

对Copr构建器的SSH访问

有时,手动调试失败的构建(不是本地调试,而是在Copr基础设施内。这就是为什么可以允许SSH访问copr构建器。更多信息请参见对Copr的SSH访问建筑商博客发布。

临时工程

如果您想在一段时间后自动删除copr项目(因为它是一些CI/CD项目、一些测试材料等)您可以设置web UI或命令行上的“删除后天数”选项:copr-cli公司 创造 你的项目 ... --日后删除 10

Webhooks(网钩)

建立与Git托管网站的集成,并为拉取请求、标记和提交进行Copr重建。

简单指南:
  1. 创建SCM包并通过指定https(https)://“克隆URL”。

  2. 确保选中包自动重新构建选项。

  3. 现在您可以导航到设置选项卡,然后集成

  4. 你的webhook url的形式是https://copr.fedorainfracloud.org/webhooks/<GIT_FORGE>/<ID>/<UUID>/

  5. 按照下面特定于Git主机的指南完成。

下次您将任何内容推送到git时,Copr将自动重建您的包。

通过标记事件触发生成

一个锻造厂可能有多个包。因此,Copr需要知道哪些包或集合应该为标记事件重新构建包。Copr从标记的名称中获取此信息,因此重要的是,标签包含包的名称,以预定义的格式,这将必须重建。

标签名称应采用以下格式:PKGNAME-VERSION[-发布]有可能用下划线替换破折号。

如果您使用不同的标记名模式(与标记名不同的Copr包名),Copr不知道应该触发什么包生成。你必须直截了当地告诉科普copr包名称在webhook URL中,如下所示https://copr.fedorainfracloud.org/webhooks/<GIT_FORGE>/<ID>/<UUID>/<copr_package_name>/.

考虑这个例子:

您的Copr包名称为我的包装Github上的标记名只是一个版本,例如。1.22.3,在这种情况下您必须在URL中添加一个可选参数,该参数包含您的copr包名称.

因此,如果您的Copr包名称为我的包裹您的Github URL将是:https://copr.fedorainfracloud.org/webhooks/github/<ID>/<UUID>/my_package/

github

如何使用:
  1. 在GitHub项目中,转到设置/Webhooks(网钩)

  2. 单击添加webhook按钮。

  3. 用上面的URL填写Payload URL字段。

  4. 选择应用程序/json作为内容类型。

  5. 如果你想对标签推送事件点击让我选择单个事件。然后选择分支或标记创建.

  6. 单击添加webhook按钮。

吉特拉布

如何使用:
  1. 在GitLab项目中,转到设置/Webhooks(网钩).

  2. 用上面的URL填写URL字段。

  3. 选择推送事件标记推送事件(如果您想对标记作出反应)作为事件触发器。

  4. 单击添加webhook按钮。

比特桶

如何使用:
  1. 在您的Bitbucket项目中,转到设置/工作流/集成/添加webhook.

  2. 命名挂钩,例如:。,科普.

  3. 用上面的URL填写URL字段。

  4. 选择触发存储库推送.

  5. 单击保存按钮。

自定义webhook

如何使用:使用上面的GitLab/GitHub/Bitbucket步骤(如果需要),或者只需:

$curl-X POSThttps://copr.fedorainfracloud.org/webhooks/custom网站/<ID>/<UUID>/<PACKAGE_NAME>/

请注意,此项目中必须存在名为“package_name”的包,并且必须指定“POST”http方法。

使用自定义webhook,您可以上传以下数据:

$curl-X POST——数据“挂钩有效负载数据”。。。。

如果包装_名称在项目中配置的包使用类似脚本的“自定义”构建方法,POST数据将作为$(CWD)/挂钩数据文件,同时生成RPM源。你可以根据你的自定义脚本中的需要。

有一种高级的可能性可以调用自定义webhook,如:

$curl-X POSThttps://copr.fedoyrainacloud.org/webhooks/customedir网站/<OWNER>/<PROJECTNAME>:自定义:<SUFFIX>/<UUID>/<PACKAGE_NAME>/$curl-X POSThttps://copr.fedorainfracloud.org/webhooks/custom-dir/<所有者>/<项目名称>:pr:<INT_UID>/<UUID>/<PACKAGE_NAME>/

这样,构建被放置到一个自定义目录中(例如。myproject:自定义:pull请求:1我的项目:公关:123). 这个:公关:子目录具有保留策略;每个这样的目录都是自动的在构建不活动40天后删除。

页面集成

自定义位置Webhooks

您可以在此处查看如何执行此操作:COPR使用自定义Git存储库自动重新构建

Multilib(Multilib)

在Copr中,不能将i386包构建到x86_64存储库(也称为multilib包),例如在Koji中。你可以为这两者构建多页对色标(例如。联邦快递-31-x86_64软呢帽31-i386)另外,用户可以同时启用这两个多链接存储库所有构建的32位和64位包将同时可用。

如果您想将其自动化,请指定您的项目应该是“支持多个库”。在命令行中:

 创造 --多实验室= [其他 选项]

或通过上的复选框项目 -> 设置web-UI页面。

当(a)为项目启用此功能并且(b)项目还包含multilib-pair chroots,相关的copr-web-UI项目页面也将提供multilib repo文件按钮(除了正常的按钮),这样用户可以选择这些文件。打开除此之外,脱氧核糖核酸 铜比 使可能 <所有者>/<项目>安装multilib自动重报文件,而不是在具有多分支功能的系统上的正常重报文件。

用户还可以在支持multilib的上手动安装multilib-repofiles无论项目设置如何,这些报告文件可以如下所示:

$cat/etc/yum.repos.d/rhughes-f20-gnome-3-12.repo[copr:copr.fedorainfracloud.org:rhughes:gnome-3-12]name=rhughes拥有的f20-gnome-3-12的Copr回购基本URL=http://copr-be.cloud.fedoraproject.org/results/rhughes/f20-gnome-3-12/fedora-$releasever-$basearch/skip_if_unavailable=真gpg检查=0启用=1[copr:copr.fedorainfracloud.org:rhughes:gnome-3-12:ml]name=rhughes(i386)拥有的f20-gnome-3-12的Copr回购基本URL=http://copr-be.cloud.fedoraproject.org/results/rhughes/f20-gnome-3-12/fedora-$releasever-i386/skip_if_unavailable=真gpg检查=0成本=1100已启用=1

高级搜索

Copr主页上有一个大搜索框,还有一个小搜索框每个子页面顶部的框。两者的行为方式完全相同,所以用你喜欢的那个。

输入格式:

  • 数字-如果搜索到的值是有效的生成ID,则会重定向页面到构建详细信息页面。否则,将执行全文搜索。

  • 以开头的字符串@(例如。@铜比)-对组进行全文搜索执行name。例如,搜索@钴找到所有@铜比,@核心操作系统,@驾驶舱等,以及他们的所有项目。

  • 不带任何格式的字符串-对用户执行全文搜索名称、项目名称、摘要、说明等。

  • 包含正斜杠的字符串(例如。frostyx/foo公司@copr/@copr)-对所有者名称和项目名称。例如,通过搜索@公司/公司@copr/copr-dev可以是找到。

此外,搜索框的一部分是下拉菜单(带有插入符号的按钮符号)具有更多搜索选项:

  • 仅限于用户名的全文搜索

  • 仅限于组名的全文搜索(此选项等于搜索以开头的字符串@)

  • 仅限于项目名称的全文搜索

  • 项目中包名称的全文搜索

状态徽章

是否要添加此类徽章:

https://copr.fedorainfracloud.org/coprs/g/mock/mock/package/mock/status_image/last_build.png

到你的页面?例如,发送到GitHub README.md?您可以使用这些URL:

  • https://copr.fedoracraloud.org/coprs/<username>/<coprname>/package/<package_name>/status_image/last_build.png

  • https://copr.fedorainfracloud.org/coprs/g/<group_name>/<coprname>/package/<package_name>/status_image/last_build.png

这个徽章将反映您包裹的当前状态。

大规模重建

Copr可以用数千个包和生成。这方面的一个典型用途是用一些提案更改或重建编程语言模块(PyPI,RubyGems)作为RPM。

请遵循以下建议,以获得最流畅的体验:

  • 如果可能,请提前通知我们,以便我们更加关注服务器加载并确保一切正常运行。请参阅首选通信渠道

  • 创建AppStream元数据对于大型存储库来说太慢了,您可能希望以禁用它。转到项目设置并关闭“生成AppStream元数据”选项,或指定--appstream=关闭在中创建或修改项目时copr-cli公司.

  • 提交生成时,请使用--背景参数到使它们被调度器降级(与正常情况相比构建)。这对其他用户来说是一个很好的手势。

  • 如果可能的话,不要一次提交所有的构建,而是一次提交1k-5k等待Copr处理它们

  • 使用生成批处理提前指定生成的顺序。这个当某些包将项目中的其他包用作依赖性和需要等待它们生成

  • 使用分页通过API访问项目包和生成时

您可以考虑使用现有的大规模重建工具,例如大规模建造,迷你马赛重建,copr自动修复机,或copr重建工具.

生成批次

生成批处理功能允许您定义生成的顺序提前。此功能也可以在web-UI中使用,但它是通过命令行更方便:

$copr构建<project>--无等待<first.src.rpm>创建的版本:101010$copr-build<project>--no-wait<second.src.rpm>--after-build-id 101010创建的版本:101020$copr-build<project>--no-wait<third.src.rpm>--with-build-id 101020创建的版本:101030

这将创建两个批次(第一个批次为101010,第二个批次为101010两个构建101020和101030),其中第二批直到Copr才开始完成第一个。这样,您可以构建依赖构建树根据您的项目需要进行批处理。另请参阅相关博客帖子<https://pavel.raiskup.cz/blog/build-ordering-by-batches-in-copr.html>这更详细一点。

自动运行Fedora Review工具

有一个新的项目配置选项(例如。铜比 创造 --软呢帽审查)触发自动运行Fedora评论在每次构建之后项目,目前仅在软呢帽-*色度。

当审查工具暂时失败时,我们不会将构建标记为失败,它已经启动发送给最终用户,以在新的评论.txt文件在生成结果中创建的。

快速HOWTO程序包审查时间:

$copr create review-foo-component--chroot fedora-rawide-x86_64--fedora review$copr构建审核foo组件/foo.src.rpm文件...#等着看结果吧!

RPM宏

Copr定义了可用于每个构建和可以在spec文件中使用。请注意,这些宏不是在其他构建系统中可用,因此您应该将其用作例如%?copr_用户名而不是%copr_用户名.

  • %密码用户名-项目所有者可以是用户或组名称,例如。@铜比

  • %copr项目名称-项目名称,例如。copr-dev公司

  • %供应商-此宏标识分布式包,例如:

    • 费多拉 科普 - 用户 霜冻

    • 费多拉 科普 - @铜比

    • 用户可以运行每分钟转数 -气 <包装名称> | 格雷普 -我 小贩以识别已安装软件包的供应商

  • %内置标签-此宏包含Copr生成的ID,例如.铜5925897

SRPM生成的宏:

  • %蒸馏器-科普取消定义SRPM生成的%dist被忽视

  • %_禁用源回迁-我们将此宏设置为0。作为因此,可以使用完全合格SourceX(源代码X)URL并允许源自动下载。

用户通常对评估其spec文件的部分内容感兴趣只有在科普,被Koji忽视了。这很容易做到:

%如果0%{?copr_projectname:1}#这只发生在科普%结尾

手动创建存储库

构建完成后,Copr会自动将其结果添加到项目RPM中存储库。维护由数百个包(例如KDE或Gnome),禁用此功能和手动创建存储库。这样您就可以自动移动存储库从一个一致的状态到另一个。

在这种情况下,在构建完成后,Copr只将结果添加到内部的开发/报告数据存储库。其结果不可用于但存储库对项目中的所有后续生成都是启用的。准备好向用户发布更改后,请单击项目概述中的“重新生成存储库”按钮。

请注意,此名称在历史上存在一些不一致之处功能。项目中有一个“手动创建存储库”复选框设置,copr-cli公司 创造 --禁用createrepo在CLI中,以及开发模式在里面API。它们都是相同的功能。

高性能建筑商

关于更强大的建设者,请参阅费多拉·科普的建筑工人太慢了!.

模块化

Copr支持多个Fedora模块化特征:

  • 建筑模块

  • 模块修补程序存储库-允许非模块包覆盖模块包

  • 启用/禁用包buildroot中的模块。让我们假设一下需要安装模块依赖项,例如。脱氧核糖核酸 模块 安装 节点数:16构建包。这可能是通过进入项目设置,选择chroot,单击其“编辑”按钮,并指定“模块”字段。请注意,它还可以禁用模块。

常见问题解答

Copr的目的是什么?

Copr是一个适用于所有人的构建系统。您提供src.rpm,Copr提供yum存储库。如果您的项目尚未包含在标准Fedora存储库中,则Copr可以用于上游构建、持续集成或为您的项目用户提供yum存储库。

你需要一个FAS账户为了开始。

我可以在Copr中构建什么?

您同意不使用Copr上传软件代码或其他材料(“材料”):

  1. 您无权上传或使用,例如侵犯知识产权下任何第三方的权利财产或其他适用法律;

  2. 全部或部分受未包含在Fedora可接受的许可证列表,当前位于https://docs.fedoraproject.org/en-US/legal/allowed-licenses网站,联邦委员会可能会不时修订该清单;

  3. 在处被归类为“不允许的项目”https://docs.fedoraproject.org/en-US/legal/not-allowed-licends(https://docs.fedoraproject.org/en-US/legal/not-allowed-licends)/因为联邦政府可能会不时修改该页理事会;

  4. 旨在干扰、禁用、过载、损坏、,损害或破坏Copr或Fedora项目基础设施;

  5. 违反了Fedora项目的任何规则或指南,尤其是Fedora计划行为准则你知道的需要遵守包装指南.;

  6. 违反任何适用的法律法规。

您有责任检查许可证,并确保可以将结果yum-repo公开。

如果您认为某些回购可能违反了许可证,您可以发出法律标志-每个项目中都有一个专门的文本区域。这将向管理员发送通知,我们将采取相应行动。

如果您在Description或Install说明中说明了软件包的许可证,那就太好了。

Copr do中的包需要遵循Fedora包装指南,尽管建议这样做。特别是内核模块可以在Copr中构建,只要它们不违反许可证第2点中的要求。以上。

你能借给我更快的Copr建筑商吗?

是的,很高兴你这么问!但你并不总是想要这个-费多拉·科普的建筑工人太慢了!.

使用Copr安全吗?

这是一个由两部分组成的问题。

1) 我们可以信任Copr作为一个平台吗?

Copr是一种自由软件,其代码可公开供审查任何人。在内部,它使用标准的Fedora打包工具集,并且对结果存储库进行签名。部署了所有Copr服务器在Fedora基础设施内,我们与Fedora密切合作基础设施团队。

2) 我们可以信任Copr中可用的软件吗?

只有拥有FAS帐户的人才能创建项目和构建Copr中的包。这意味着你可以找到更多信息了解每个项目所有者并自行决定是否找到他们是否值得信赖。您还可以看到每个构建的具体情况提交,下载其SRPM文件,并验证源代码和规范为自己归档。

如何启用Copr存储库?

请参见如何启用回购.

如何将软件打包为RPM?

有几个教程:

我可以为不同版本的Fedora构建吗?

对。只需点击项目中的“编辑”选项卡并选择几个chroot,例如“fedora-19-x86_64”和“fedorac-18-x86_ 64”。完成此操作后,当您提交src.rpm时,将为这两个选定版本的Fedora构建包。

您也可以为EPEL构建。

我可以拥有更多的yum存储库吗?

对。每个用户可以有多个项目,每个项目有一个yum存储库,更准确地说,每个chroot有一个存储库。

我可以一次提交多个生成吗?

对。只需用空格或新行将它们隔开,但请记住,我们不保证构建顺序。

当我尝试构建具有相同版本号的包时会发生什么?

没什么特别的。您的软件包将重新构建。

我可以依赖Fedora/EPEL中没有的其他软件包吗?

是的,它们只需要在一些yum存储库中可用。它可以是另一个Copr回购或第三方yum回购(例如jpackage)。单击项目中的“编辑”并将相应的存储库添加到“Repos”字段中。项目中的包也可在生成时使用,但仅适用于当前正在生成的项目,而不适用于其他项目。

我可以将回购权限授予我的队友吗?

对。如果有人想构建到您的项目中,而您想授予他们访问权限,只需将他们指向您的Copr项目页面即可。然后单击“权限”选项卡,请求所需的权限。“生成器”只能提交生成,“管理员”可以批准权限请求。然后,您必须导航到相同的“权限”选项卡,然后批准或拒绝请求。

您有命令行客户端吗?

对。就这么做吧脱氧核糖核酸 安装 copr-cli公司并通过以下方式了解更多信息男人 copr-cli公司.

你有API吗?

对。查看每个Copr页面页脚中的链接或直接跳到API页面.

您将构建保存多久?

我们为一个项目中的每个包无限期保留一个构建。所有其他构建(旧包、失败的构建)将在14天后删除。

请注意,我们使用最强大的EPOCH:NAME-VERSION-RELEASE保持构建,尽管这个版本可能不是最新的。此外,如果有同一软件包版本的两个版本,尚不明确哪一个版本保留。

选择参与的项目手动创建存储库,是由于技术限制,免除旧包装的移除。

科普怎么发音?

在美式英语中,Copr的发音与金属元素的拼写“cupper”类似。

为什么要建立另一个系统?

我们并没有开始创建另一个构建系统。我们最初只是想让构建第三方rpm存储库变得更容易,但在与koji开发人员和为CentOS构建包的开发人员交谈后,我们意识到需要一个可维护、可插拔和轻量级的构建系统。

你考虑过OBS吗?

是的,我们做到了。请参见与Koji合作和集成使用OBS实施Copr.以及邮件列表讨论,以及结论.

我可以从Copr生成中获得通知吗?

是的,你可以。在以下位置启用电子邮件/irc/android通知Fedora通知服务.

查看博客帖子如何从总线使用copr消息.

科普是什么意思?

社区项目(以前是Cool Other Package Repositories)

我如何告诉百胜更喜欢Copr套餐?

不鼓励在Copr中构建与官方Fedora repos中分发的包版本号相同的包。相反,您应该增加版本号。如果使用相同的版本发布号进行构建,可以通过在.repo文件中添加cost=900来告诉yum更喜欢Copr包而不是分发版提供的包。

Copr可以直接从git构建吗?

是的,它可以。请参见供应链管理源类型。

如果您想了解有关从Git repo生成srpm的工具的更多信息,请参阅:

  1. 蒂托(博客帖子)

  2. dgroc公司(博客帖子)

为什么科普不下载我的更新包?

有时,人们报告说,即使他们已经更新了src.rpm文件并提交了新的构建,Copr仍在使用旧的src.rpm。这通常是在对src.rpm文件进行更改时导致的,但版本号没有相应增加。因此,生成的文件具有相同的URL,因此您的浏览器不会费心获取新的日志文件,并继续在其缓存中显示这些文件。因此,您仍然可以看到上一个任务中的旧内容。

您应该按Ctrl+Shift+R使缓存无效并重新加载页面

如何创建新组?

组成员身份由处理船边交货。它可以向现有组添加/删除成员。然而,它不能创建新组。您可以通过以下方式创建新组创建新的软呢帽基础设施票.您必须注销,然后再次登录到Copr,以便Copr可以阅读您的新设置。还要注意,您可能需要等待几分钟,直到组列表已同步.用户还报告说首先从伊普西隆注销可能有助于同步。

一旦copr知道您所属的FAS组,您仍然需要激活组。转到我的群页面,然后单击激活 按钮。

我在日志中看到关于/devel/repodata/的一些奇怪错误。

这是有意的。实际上,在下一个版本中会出现类似“请忽略上面的错误”的内容。

这是您可以检入设置“手动创建存储库”的功能的一部分。这是为大型像Gnome或KDE这样的项目,由数百个包组成。你想同时释放它们。但另一方面,建造它们需要几天的时间。当然,在构建期间,您需要启用该存储库,同时为用户禁用/冻结。

因此,如果您选中“手动创建存储库”,我们不会在普通目录中运行createrepo_c,而是在中运行/devel/directory。此目录始终传递给模拟skip_if_unavailable=1.因此,如果Copr有它,则使用它,否则忽略它。但如果它缺少DNF/YUM,则打印上面的警告,即使它被忽略。目前无法告知DNF/YUM不要打印此警告。

我如何影响构建顺序,是否有“链”构建支持?

生成批处理可用于保证生成的顺序已处理(一个生成批可以依赖于其他生成批)。请参见博客帖子通过示例了解更多信息。

生成成功,但我没有看到生成的结果?

Fedora Copr使用AWS CDN在构建的RPM上传播HTTP流量存储库遍布全球,这意味着AWS端需要大量缓存。

当您(或您所在地区的任何其他人)在构建仍在进行中,web服务器目录列表缓存在CDN-然后目录的内容在一段时间内保持不变(即使构建可能已经完成,因此目录也会更新)。

不用担心,此缓存不会影响DNF/YUM行为-即使如此您的浏览器被缓存误导,包管理器总是下载最新的目录的内容。请忽略不一致,或访问这个非缓存主机变量.

我的构建因超时而失败,为什么?

生成不允许永远运行。默认限制为5小时(18000秒),但用户可以将其增加到30小时(108000秒)。

特定于部署

这个费多拉·科普实例增加最大限制为50小时(180000秒)。

如果超过超时限制,则生成将被终止出现以下错误消息:

!! Copr超时=>发送INTCopr生成错误:生成失败与生成器的共享连接已关闭。

奇怪的SCM构建失败?

它以前对我有用,但我最近看到每千克转数错误如下:

正在运行: 每千克转数 srpm公司 --外部(outdir) /无功功率,无功功率/图书馆/铜比-rpmbuild公司/结果 ...
科普 建造 错误: 错误:  来源: /无功功率,无功功率/图书馆/铜比-rpmbuild公司/结果/例子-1.0.13.焦油.gz(高斯):  这样的 文件  目录

请看一下rpkg-util v2与v3的差异.

Koji和Copr的区别是什么?

参见单独的页面Koji与Copr.

如何处理Copr和RPMAutoSpec?

最简单的方法是使用DistGit源类型.它是自动的展开%自动释放%自动更改日志来自克隆的dist-git存储库。

如果你需要对流程进行微调并以某种方式进行更改,你可以-将源类型设置为“自定义”,并使用以下脚本:

#! /箱子/箱-x
包裹=<包裹>
铜比-分配(distgit)-客户 克隆 “$包” --距离-吉特 软呢帽
光盘 “$包” || 出口 1
..  这个 规范 文件  校验 这个 渴望的 分支 ..
铜比-分配(distgit)-客户 来源  #下载源
铜比-分配(distgit)-客户 srpm公司 --输出目录 .
bsdtar xf公司 *.型钢混凝土.每分钟转数 -C类 “$COPR_RESULTDIR”

将Buildroot依赖项设置为copr-distgit-客户端 bsdtar。或者你可以更深入地使用吉特 rpmdevtools工具 rpmautospec公司与以下人员合作:

吉特 克隆 <吉特 网址> <项目 名称>
光盘 <项目 名称>
光谱工具 - <规范 文件>
rpmautospec公司 过程-分配(distgit) <规范 文件> <规范 文件>

在这种情况下,将结果目录指定为<项目 名称>一串在脚本中使用。

我有个问题,我需要和一个人谈谈。

我们本身不提供支持,但请在此碰碰运气:通信