RPM

RPM是用于保存和管理RPM软件包的仓库。我们在RHELCentos系统上常用的Yum安装就是安装的RPM软件包,而Yum的源就是一个RPM软件包的仓库。JFrog Artifactory是成熟的RPMYUM存储库管理器。JFrog的官方Wiki页面提供有关Artifactory RPM存储库的详细信息。

Artifactory索引RPM包的过程

Artifactory 5.5.0及之后版本,针对YUM元数据计算处理进行了重大的改进,加入了并发和增量计算的能力。所以新的索引过程

n性能上优于之前自动触发的异步计算

n同时不需要在单独开发触发元数据计算的插件

n可以监控并且准确地知道新的元数据计算的状态

如下图:创建RPM仓库时选择“Auto Calculate RPM Metadata”Artifactory将会拦截CopyMove的操作,并且自动触发计算步骤。保证在及时提供给用户最新的元数据用来获取软件包的版本


RPM索引在Artifactory中是如何工作_第1张图片 

元数据的两种方式

n异步:

正常情况下,如果启动了以上的选项,那么当你使用REAT API或者UI部署包的时候,异步计算将会拦截文件操作,并且将索引添加操作加入到Artifactory内部的队列中进行计算。

n同步:

只有关闭Auto Calculate RPM Metadata时才可以使用,此时您可以手动触发元数据计算。

例:

有一个CI任务可以将很多版本上传到一个大型仓库里,可以在流水线中增加一个额外的构建步骤。以下为仓库名为“rpm-release-local”,通过Rest API请求手动触发元数据计算

curl -uadmin:password -XPOST "localhost:8081/artifactory/api/yum/rpm-release-local?async=0" -i -Lvv

 

* Connected to localhost (::1) port 8081 (#0)

* Server auth using Basic with user 'admin'

> POST /artifactory/api/yum/rpm-release-local?async=0 HTTP/1.1

> Host: localhost:8081

> Authorization: Basic YWRtaW46cGFzc3dvcmQ=

> User-Agent: curl/7.54.0

> Accept: */*

 

< HTTP/1.1 200 OK

< Server: Artifactory/6.3.2

< X-Artifactory-Id: a9116dfeb1f6dac4:449dde33:1658a295e45:-8000

< Content-Type: text/plain

< Transfer-Encoding: chunked

< Date: Sun, 02 Sep 2018 12:19:56 GMT

Artifactory RPM系统属性整选项(5.5.0及以上版本)

artifactory.rpm.metadata.calculation.workers(默认值为8

–本地RPM元数据计算线程数。

artifactory.rpm.metadata.history.cycles.keep(默认值3

–保留元数据记录,包括已经计算完成的计算记录

yum.virtual.metadata.calculation.workers(默认5

-虚拟库计算的线程数

日志

nRPM日志记录org.artifactory.addon.yum.YumAddonImpl

 

INFO级别:Starting to calculate Rpm metadata for

您可以在Artifactory中的以下软件包上启用调试/跟踪级别日志记录(修改$ ARTIFACTORY_HOME / etc / logback.xml)以跟踪/调试您的计算:

自动计算(异步):

DEBUG级别:{path}的异步Rpm计算

触发(同步):

DEBUG级别:{path}的同步Rpm计算

n虚拟RPM存储库计算:

org.artifactory.addon.yum.virtual.index启用每个日志级别  :

DBUG级别:为{path}启动虚拟yum元数据计算

整个包逻辑过程的跟踪级别:

org.jfrog.metadata.indexer.RpmRepoIndexer启用每个日志级别  :

TRACE级别:准备索引RPM存储库元数据

DEBUG级别:完成对RPM存储库元数据的索引编制