云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

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

  • 用于托管在Artifactory本地存储库中的RPM的RPM元数据计算。
  • 将RPM模块部署到Artifactory本地存储库。
  • 直接从Artifactory向YUM客户端提供rpm。
  • web界面提供详细的RPM元数据视图。
  • 提供YUM客户端可用于验证rpm的GPG签名。

YUM也适用

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

RPM托管RPM的元数据

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

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

文件 描述
primary.xml.gz
包含一个XML文件,描述每个RPM存档的主要元数据。
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虚拟存储库的元数据文件可能不完整(例如,它可能实际上没有列出它聚合的所有文件),如果它聚合的任何存储库没有启用文件列表。的if索引filelists.xml如果文件被禁用,则无法使用YUM客户端搜索文件以确定是哪个包将所查询的文件写入了文件系统。


配置

要创建RPM本地存储库,请执行以下命令n的政府模块转到存储库|存储库|本地,点击新建本地存储库而且选择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 -或- rpm-local/foo/1.0/x64/foo-1.0-x64.rpmm . REPO_ROOT/$ARTIFACT_NAME/$ARTIFACT_VERSION/$ARCHITECTURE/FILE_NAME

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

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

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

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

远程存储库

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

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

要定义远程存储库来代理RPM远程存储库,请执行以下步骤:

  1. 政府模块下存储库|存储库|远程存储库,点击新的远程存储库创建一个新的远程存储库。
  2. 设置库的关键属性中指定远程存储库的URLURL字段,如下所示。
  3. 点击保存&完成
  4. 回到应用| Artifactory | Artifacts模块中,树浏览器,选择存储库。注意,在Tree Browser中,存储库名称附加了缓存
  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元数据

Artifactory支持使用GPG密钥对RPM元数据存储库(而不是包)进行签名,以便由YUM客户端进行身份验证。

若要生成一对GPG密钥并将其上传到Artifactory,请参见管理签名密钥


使用Yum安装RPM包

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

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

    Sudo vi /etc/yum.repos.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 

部署RPM包

在配置本地机器以从RPM本地存储库安装RPM包之后,还可以将RPM包部署到相同的存储库使用UI或者使用REST API

通过REST API,您还可以选择根据校验和进行部署从存档部署

例如,将RPM包部署到名为rpm-local你可以使用以下语句:

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

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


将RPM模块部署到本地存储库

可以将RPM模块部署到repodata使用modules.yaml文件,其中包含所需的所有模块,然后继续触发存储库索引以更新repomd.xml和其他带有模块信息的元数据文件。

  1. 您可以直接在JFrog平台界面进行上传,也可以使用以下命令进行上传。

    curl -u : -XPUT "http://localhost:8081/artifactory/rpm-local//modules. zipyaml -T "
  2. 命令触发重新索引计算YUM存储库元数据API

百胜餐饮集团

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

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

Artifactory支持附加YUM集团档案到YUM计算基本上是模仿createrepo - g命令。

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

sudo yum-groups-manager -n "My Group"——id=mygroup——save=mygroups.xml——mandatory 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集团文件名称字段的基本选项卡下的存储库配置。这告诉Artifactory应该将哪些文件作为存储库组信息附加。

YUM集团命令

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

命令 描述

yum groupinstall <组ID> . yum groupinstall <组ID> . yum

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

yum groupremove <组ID> . yum groupremove <组ID> . yum

移除RPM组

yum groupupdate <组ID> . yum groupupdate <组ID> . yum

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

> . yum groupinfo <组ID

列出组内的RPM包。

Yum grouplist |更多

列出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为:默认,必填项


百胜的身份验证

代理服务器设置

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

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

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

enableProxy=1 httpProxy=<代理服务器url> enab大柏xyauth =1 proxyUser=<用户> proxyPassword=<密码> . enableProxy=1 httpProxy=<代理服务器url> enab大柏xyauth =1 proxyUser=<用户>

SSL设置

YUM从3.2.27版本开始支持SSL。

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

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

    [protected] name = SSL protected repository baseurl= enabled=1 gpgcheck=1 gpgKey=< url to public key> sslverify=1 sslclientcert= sslclientkey= .key . name = SSL protected repository baseurl= enabled=1 gpgcheck=1 gpgKey=< url to public key> sslverify=1 sslclientcert= sslclientkey=

    地点:
    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[注释被删除]

查看单个转速信息

您可以通过在Artifactory的树浏览器中选择RPM并选择RPM的信息选项卡。

作为属性的元数据字段

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

  • 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是多么容易。

版权所有©2022 JFrog Ltd.