RPM库索引如何在Artifactory工作

丹尼尔Poterman
2023-01-22 11:07

一个转库用于保存和管理RPM包。它与流行的Unix系统(如RHEL和CentOS)使用的客户端一起工作,用于管理二进制包。Artifactory是一个完整的RPM存储库管理器。而关于Artifactory RPM存储库的详细信息可以找到在这里,本文将重点介绍RPM索引过程。
RPM存储库启用:

  • 用于托管在Artifactory本地存储库中的RPM包的RPM元数据计算
  • 从Artifactory直接向YUM客户端提供RPM包
  • 软件开发行业的高并发性能
  • Artifactory的web UI中详细的RPM元数据视图
  • 提供GPG签名,YUM客户端可以使用它来验证RPM元数据

在创建RPM存储库时,使用自动计算RPM元数据存储库选项应该勾选。这允许Artifactory拦截每个文件部署、复制或移动操作,并自动触发计算过程。这是一个好处,因为自动化流程使Artifactory能够在最新的元数据可用时立即向客户提供。关于元数据计算,它们可以以以下两种方式之一发生:

  • 异步:

这是通常的路径。无论何时部署包(通过REST或UI),都会进行计算。异步计算基于拦截文件操作,并将必要的索引操作添加到内部Artifactory队列。这通常会立即发生。

  • 同步:

此方法允许您控制YUM元数据计算的触发手动.但是,该选项只能在自动计算RPM元数据功能关闭时使用。当您希望确保存储库中的所有元数据都可以提供给任何发出请求的客户端时,同步是一种有用的方法,但是在给定的计算完成之前保持任何此类请求。

例子
假设您有一个CI作业,它将一个包的多个版本部署到一个大型存储库(例如,快照版本)。属性的回答可以添加额外的构建步骤计算YUM元数据REST API查询将异步查询参数设置为“0,这将在rpm-release-local存储库:curl -u: -XPOST "localhost:8081/artifactory/api/yum/rpm-release-local?async=0" -i -Lvv输出这一查询的内容如下:*连接到localhost(::1)端口8081 (#0)
*服务器认证使用Basic与用户'admin'
> POST /artifactory/api/yum/rpm-release-local?异步HTTP / 1.1 = 0
>主机:localhost:8081
>授权:基本YWRtaW46cGFzc3dvcmQ=
> User-Agent: curl/7.54.0
>接受:*/*

< http /1.1 200 ok
< Server: Artifactory/6.3.2
< X-Artifactory-Id: a9116dfeb1f6dac4:449dde33:1658a295e45:-8000
< Content-Type: text/plain
< Transfer-Encoding:分块
<日期:Sun, 2018.09.02 12:19:56 GMT
接受存储库'rpm-release-local'的YUM元数据计算。
在上面的方框中,关于任何聚合RPM虚拟存储库,在过程结束时,a虚拟存储库元数据计算也会被触发。

Artifactory系统属性可以优化您与RPM的交互,包括:

  • workers(默认为8个):控制本地RPM元数据计算的线程数(worker)。
  • keep(默认为3个):当计算发生时(在实际情况中,可能会运行并发计算),Artifactory正在维护以前元数据的记录。
  • workers(默认为5个):控制虚拟RPM元数据计算的线程数(worker)。