有问题吗?想要报告问题?联系JFrog技术支持

跳到元数据的末尾
转到元数据的开始

概述

Artifactory是一个成熟的RPM存储库。因此,它使:

  1. 托管在Artifactory本地存储库中的RPM的RPM元数据计算。
  2. 直接从Artifactory向YUM客户端提供rpm。
  3. 来自Artifactory web UI的详细RPM元数据视图。
  4. 提供YUM客户端可以用来对rpm进行身份验证的GPG签名。

对YUM也有效

本页上的说明可以互换地用于RPM存储库和YUM存储库。

托管RPM的元数据

Artifactory生成的RPM元数据与基于Red hat的Linux命令的基本模式输出相同createrepo

一个名为repodata在本地存储库中的配置位置创建,其中包含以下文件:

文件 描述
primary.xml.gz
包含描述每个RPM存档的主要元数据的XML文件。
filelists.xml.gz
包含一个XML文件,描述每个RPM存档中包含的所有文件。
other.xml.gz
包含一个XML文件,描述有关每个RPM存档的各种信息。
repomd.xml
包含有关所有其他元数据文件的信息。

YUM支持是平台独立的!

Artifactory的元数据的计算基于RPM纯Java。

它的存在并不依赖于createrepo二进制文件,或者在运行Artifactory的主机上运行外部进程。

页面内容

集成的好处

触发RPM元数据更新

启用后,元数据计算将由某些操作自动触发,也可以由其他操作手动调用。无论采用哪种方式,生成的元数据都将提供给YUM客户机。

自动

RPM元数据自动计算:

  1. 部署/删除/复制/移动RPM文件时。
  2. 在执行内容导入(系统和存储库导入)时。
手册

您可以手动调用RPM元数据计算:

  1. 通过在Tree Browser中选择本地存储库并单击重新计算指数行动菜单。
  2. 通过Artifactoryrest api

元数据计算清除由于手动部署或导入而已经存在的RPM元数据。这包括作为SQLite数据库文件存储的RPM元数据。

索引文件列表

filelists.xmlRPM存储库的元数据文件包含存储库中托管的每个包中的所有文件的列表。当存储库包含许多包时,由于与YUM客户端交互而重新索引该文件可能会占用大量资源,从而导致性能下降。因此,从5.4版本开始,当创建RPM存储库时,该文件的重新索引将被禁用。启用索引filelists.xml,设置启用文件列表索引复选框。

请注意filelists.xml如果它聚合的任何存储库没有启用文件列表,则虚拟存储库的元数据文件可能不完整(即它可能没有实际列出它聚合的所有文件)。的索引filelists.xml文件被禁用,则无法使用YUM客户端搜索文件以确定哪个包将查询的文件写入文件系统。


配置

要创建RPM本地存储库,请选择RPM随着包类型创建存储库时。

创建RPM存储库

局部存储库

如果需要在本地RPM存储库中自动计算RPM元数据,请执行RPM的设置部分基本设置界面,设置自动计算RPM元数据

RPM的设置

描述
RPM元数据文件夹深度

通知Artifactory在哪个目录级别下搜索rpm并保存repodata目录中。

默认情况下,此值为0,并引用存储库的根文件夹。在这种情况下,Artifactory在整个存储库中搜索rpm并保存repodata目录在$ REPO-KEY / repodata

在为存储库生成元数据时,根据名称、版本和体系结构将其构件分开的情况下,使用不同的深度是有用的。这将允许您在同一个Artifactory RPM存储库下创建多个RPM存储库。

例如:
如果存储库布局类似于下面所示,并且您希望为每个工件生成按名称划分的RPM元数据,则设置深度1repodata目录保存在REPO_ROOT / ARTIFACT_NAME / repodata

REPO_ROOT/$ARTIFACT_NAME/$ARTIFACT_VERSION/$ARCHITECTURE/FILE_NAME - or - rpm-local/foo/1.0/x64/foo-1.0-x64.rpm

当更改现有存储库的配置深度时,在旧深度中索引的包可能需要重新索引或移动到新深度,以便在新配置的深度中可用,并且YUM客户端可能需要更改其配置以指向新深度。深度。

自动计算RPM元数据
设置后,RPM元数据计算将按照描述的操作自动触发以上
启用文件列表索引
设置后,RPM元数据计算还将包括索引filelists.xml元数据文件。
RPM组文件名

的逗号分隔列表YUM组文件与您的RPM包相关联。

请注意,在每个级别(深度)上repodata存储库中的目录可能包含不同的组文件名,但是每个repodata目录只能包含一个组元数据文件(多个组应该在XML文件中作为不同的标记列出)。有关详情,请参阅百胜的文档).

元数据计算是异步的,在触发时不会立即发生自动手动

Artifactory只在一定的“安静期”之后调用实际计算,所以正常情况下,触发计算后1 ~ 2分钟即可创建元数据。

远程存储库

人工远程存储库支持开箱即用的rpm,并且不需要任何特殊配置就可以在远程存储库中使用rpm。

你所需要做的就是将您的YUM客户机指向远程存储库,然后您就可以使用YUM和Artifactory了。

要定义一个远程存储库来代理RPM远程存储库,请遵循以下步骤:

  1. 管理模块下存储库|远程,单击“新建”,创建新的远程存储库。
  2. 设置库的关键中指定远程存储库的URLURL字段,如下所示。
    新的RPM远程存储库
  3. 点击“保存并完成”
  4. 回到工件模块,在树浏览器,选择存储库。请注意,在树浏览器中,存储库名称被附加了“-cache”。
  5. 点击帮我介绍复制的值baseurl标签。


  6. 接下来,创建/etc/yum.repos.d /targetCentos.repo文件和p将以下配置放入其中
[targetCentos] name=targetCentos baseurl=http://localhost:8081/artifactory/targetCentos/ enabled=1 gpgcheck=0

虚拟存储库

Artifactory中定义的虚拟存储库聚合来自本地和远程存储库的包。
这允许您从为虚拟存储库定义的单个URL访问本地托管的RPM包和远程代理的RPM存储库。
要定义虚拟YUM存储库,请创建虚拟存储库,设置包类型RPM,并选择要包含在目录中的底层本地和远程RPM库基本设置选项卡。

RPM虚拟存储库

要允许将包部署到此存储库,请设置默认部署存储库


签名RPM元数据

Artifactory支持使用GPG密钥对RPM元数据签名,以便YUM客户端进行身份验证。

要生成一对GPG密钥并上传到Artifactory,请参考GPG签署


使用Yum安装RPM包

在配置rpm-local您需要通过执行以下步骤来配置本地机器,以便从它安装软件包:

  1. 编辑artifactory.repo具有根权限的文件

    Sudo vi /etc/yum.repo .d/artifactory.repo
  2. 粘贴下面的配置artifactory.repo文件:

    [Artifactory] name=Artifactory baseurl=http://localhost:8081/artifactory/rpm-local/ enabled=1 gpgcheck=0

现在,每个RPM文件都部署到目录的根目录rpm-local可以使用以下方式安装存储库:

Yum install 

使用Yum部署RPM包

一旦您配置了本地机器来安装来自RPM本地存储库的RPM包,您还可以将RPM包部署到相同的存储库使用UI或者使用REST API

通过REST API,您还可以选择按校验和部署从归档部署

例如,将一个RPM包部署到一个名为rpm-local你可以用下面的句子:

curl -u: -XPUT http://localhost:8080/artifactory/rpm-local/ -T 

其中PATH_TO_METADATA_ROOT指定从存储库根到部署文件夹的路径。


百胜餐饮集团

YUM组是一组为特定目的收集在一起的RPM包。例如,您可能会收集一组“开发工具”作为YUM组。

通过添加组XML文件来指定组与其中包含的RPM包相同的目录。组文件包含组的元数据,包括指向组成组的所有RPM文件的指针。

人工支持连接YUM组文件到YUM计算基本上是模仿createrepo - g命令。

还可以通过以下命令创建组文件:

sudo yum-groups-manager -n "My Group"——id=mygroup——save=mygroups.xml——必选yum glibc rpm

附加YUM集团

将YUM组元数据附加到本地存储库的过程很简单:

  1. 以YUM使用的组格式创建XML文件。您可以使用任何文本编辑器手动输入它,也可以运行yum-groups-manager命令从yum-utils
  2. 将创建的组文件部署到repodata文件夹中。
    Artifactory将自动执行以下步骤:
    • 创建相应的. gz文件,并将其部署到已部署的组XML文件旁边。
    • 在本地存储库上调用YUM计算。
    • 附加组信息(XML和. gz文件)至repomd.xml文件。
  3. 列表中列出了组文件名YUM集团文件名称字段,位于存储库配置的Basic选项卡下。这告诉Artifactory应该附加哪些文件作为存储库组信息。

YUM组命令

下表列出了一些有用的YUM组命令:

命令 描述

yum groupinstall <组ID>

安装YUM组。该组必须部署到YUM本地存储库的根目录。

yum groupremove <组ID>

移除RPM组

yum groupupdate <组ID>

更新RPM组。该组必须部署到YUM本地存储库的根目录。

yum groupinfo <组ID>

列出组内的RPM包。

百胜集团旗下还有100多家

列出YUM组

设置组属性

YUM组属性可以在/etc/yum.config文件如下:

设置 允许的值 描述
overwrite_groups 0或1

如果两个或多个存储库提供具有相同名称的包组,则确定YUM的行为。

如果设置为1,则将使用最后匹配存储库的组包。

如果设置为0,则来自所有匹配存储库的组将合并为一个大组。

groupremove_leaf_only 0或1

确定YUM的行为groupremove命令执行完毕。

如果设置为0(默认),则将删除组中的所有包。

如果设置为1,则只删除组中其他包不需要的包。

enable_group_conditionals 0或1

确定YUM是否允许使用条件包。

如果设置为0,则不允许使用条件

如果设置为1(默认),则允许包条件。

group_package_types 可选、默认、必选 告诉YUM将在何时安装组中的哪种类型的软件包groupinstall被称为。默认值是:Default, mandatory


百胜的身份验证

代理服务器设置

如果您的组织使用代理服务器作为Internet访问的中介,请指定代理设置/etc/yum.conf.如果代理服务器也需要身份验证,则还需要指定proxy_username,proxy_password设置。

Proxy =<代理服务器url> proxy_username=<用户> proxy_password=pass

如果你使用yum插件(yum-rhn-plugin)访问ULN,请指定enableProxyhttpProxy设置/etc/sysconfig/rhn/up2date.此外,如果代理服务器需要身份验证,还需要指定enableProxyAuthproxyUser,proxyPassword设置如下所示。

enableProxy=1 httpProxy=<代理服务器url> enablelexyauth =1 proxyUser=<用户> proxyPassword=<密码>

SSL设置

YUM从3.2.27版本开始支持SSL。

要使用SSL保护存储库,请执行以下步骤:

  • 生成私钥和证书OpenSSL
  • 中定义受保护的存储库.repo文件如下:

    [protected] name = SSL受保护的存储库baseurl= enabled=1 gpgcheck=1 gpgKey=<到公钥>的url sslverify=1 sslclientcert=<到。cert文件>的路径sslclientkey=<到。key文件>的路径

    地点:
    gpgkey是指向存储库的ascii保护的GPG密钥文件的URL。如果YUM需要一个公钥来验证包,而所需的密钥尚未导入RPM数据库,则使用此选项。
    如果设置了该选项,YUM将自动从指定的URL导入密钥。在安装密钥之前会提示您,除非assumeyes选项已设置。


使用Yum变量

中可以使用和引用以下内置变量百胜命令和所有YUM配置文件(例如:/etc/yum.conf和所有.repo中的文件/etc/yum.repos.d /目录):

变量 描述
releasever美元
将其替换为包的版本,如distroverpkg。的版本redhat-release包中。
美元拱
将其替换为系统的体系结构,如所列os.uname ()在Python中。
basearch美元
这将被您的基本体系结构所取代。例如,如果美元拱= i686那么basearch美元= i386

下面的代码块是如何实现的示例/etc/yum.conf文件可能如下:

[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=3[评论摘要]

查看单个RPM信息

您可以通过在Artifactory的树状浏览器中选择一个RPM并选择RPM的信息标签:

RPM的信息

元数据字段作为属性

相应的RPM元数据字段作为RPM构件的属性自动添加到通过Artifactory访问的YUM存储库中:

  • rpm.metadata.name

  • rpm.metadata.arch

  • rpm.metadata.version

  • rpm.metadata.release

  • rpm.metadata.epoch

  • rpm.metadata.group

  • rpm.metadata.vendor

  • rpm.metadata.summary

属性可用于搜索和其他功能。有关详情,请参阅属性


观看视频

观看这个简短的屏幕演示,了解在Artifactory中托管rpm是多么容易。