|
启用后,元数据计算将由某些操作自动触发,也可以由其他操作手动调用。无论采用哪种方式,生成的元数据都将提供给YUM客户机。
RPM元数据自动计算:
您可以手动调用RPM元数据计算:
元数据计算清除由于手动部署或导入而已经存在的RPM元数据。这包括作为SQLite数据库文件存储的RPM元数据。 |
的filelists.xmlRPM存储库的元数据文件包含存储库中托管的每个包中的所有文件的列表。当存储库包含许多包时,由于与YUM客户端交互而重新索引该文件可能会占用大量资源,从而导致性能下降。因此,从5.4版本开始,当创建RPM存储库时,该文件的重新索引将被禁用。启用索引filelists.xml,设置启用文件列表索引复选框。
请注意filelists.xml如果它聚合的任何存储库没有启用文件列表,则虚拟存储库的元数据文件可能不完整(即它可能没有实际列出它聚合的所有文件)。的索引filelists.xml文件被禁用,则无法使用YUM客户端搜索文件以确定哪个包将查询的文件写入文件系统。
要创建RPM本地存储库,请选择RPM随着包类型创建存储库时。
![]()
如果需要在本地RPM存储库中自动计算RPM元数据,请执行RPM的设置部分基本设置界面,设置自动计算RPM元数据.

| 场 | 描述 | ||
|---|---|---|---|
RPM元数据文件夹深度 |
通知Artifactory在哪个目录级别下搜索rpm并保存 默认情况下,此值为0,并引用存储库的根文件夹。在这种情况下,Artifactory在整个存储库中搜索rpm并保存 在为存储库生成元数据时,根据名称、版本和体系结构将其构件分开的情况下,使用不同的深度是有用的。这将允许您在同一个Artifactory RPM存储库下创建多个RPM存储库。 例如:
|
||
自动计算RPM元数据 |
设置后,RPM元数据计算将按照描述的操作自动触发以上. | ||
启用文件列表索引 |
设置后,RPM元数据计算还将包括索引filelists.xml元数据文件。 |
||
RPM组文件名 |
的逗号分隔列表YUM组文件与您的RPM包相关联。 请注意,在每个级别(深度)上 |
Artifactory只在一定的“安静期”之后调用实际计算,所以正常情况下,触发计算后1 ~ 2分钟即可创建元数据。 |
人工远程存储库支持开箱即用的rpm,并且不需要任何特殊配置就可以在远程存储库中使用rpm。
你所需要做的就是将您的YUM客户机指向远程存储库,然后您就可以使用YUM和Artifactory了。
要定义一个远程存储库来代理RPM远程存储库,请遵循以下步骤:


/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库基本设置选项卡。

要允许将包部署到此存储库,请设置默认部署存储库.
Artifactory支持使用GPG密钥对RPM元数据签名,以便YUM客户端进行身份验证。
要生成一对GPG密钥并上传到Artifactory,请参考GPG签署.
在配置rpm-local您需要通过执行以下步骤来配置本地机器,以便从它安装软件包:
编辑artifactory.repo具有根权限的文件
Sudo vi /etc/yum.repo .d/artifactory.repo |
粘贴下面的配置到artifactory.repo文件:
[Artifactory] name=Artifactory baseurl=http://localhost:8081/artifactory/rpm-local/ enabled=1 gpgcheck=0 |
现在,每个RPM文件都部署到目录的根目录rpm-local可以使用以下方式安装存储库:
Yum install |
一旦您配置了本地机器来安装来自RPM本地存储库的RPM包,您还可以将RPM包部署到相同的存储库使用UI或者使用REST API.
通过REST API,您还可以选择按校验和部署或从归档部署.
例如,将一个RPM包部署到一个名为rpm-local你可以用下面的句子:
curl -u |
其中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-groups-manager命令从yum-utils.repodata文件夹中。. gz文件,并将其部署到已部署的组XML文件旁边。. gz文件)至repomd.xml文件。下表列出了一些有用的YUM组命令:
| 命令 | 描述 |
|---|---|
|
安装YUM组。该组必须部署到YUM本地存储库的根目录。 |
|
移除RPM组 |
|
更新RPM组。该组必须部署到YUM本地存储库的根目录。 |
|
列出组内的RPM包。 |
|
列出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= |
如果你使用yum插件(yum-rhn-plugin)访问ULN,请指定enableProxy和httpProxy设置/etc/sysconfig/rhn/up2date.此外,如果代理服务器需要身份验证,还需要指定enableProxyAuth,proxyUser,proxyPassword设置如下所示。
enableProxy=1 httpProxy=<代理服务器url> enablexyauth =1 proxyUser=<用户> proxyPassword=<密码> |
YUM从3.2.27版本开始支持SSL。
要使用SSL保护存储库,请执行以下步骤:
中定义受保护的存储库.repo文件如下:
[protected] name = SSL受保护的存储库baseurl= |
地点:
gpgkey是指向存储库的ascii保护的GPG密钥文件的URL。如果YUM需要一个公钥来验证包,而所需的密钥尚未导入RPM数据库,则使用此选项。
我如果设置了该选项,YUM将自动从指定的URL导入密钥。在安装密钥之前会提示您,除非assumeyes选项已设置。
中可以使用和引用以下内置变量好吃。命令和所有YUM配置文件(例如:/etc/yum.conf和所有.repo中的文件/etc/yum.repos.d /目录):
| 变量 | 描述 |
|---|---|
|
将其替换为包的版本,如distroverpkg.的版本redhat-release包中。 |
|
将其替换为系统的体系结构,如所列os.uname ()在Python中。 |
|
这将被您的基本体系结构所取代。例如,如果美元拱= 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[评论摘要] |
您可以通过在Artifactory的树状浏览器中选择一个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是多么容易。