YUM支持是平台独立的!
Artifactory的RPM元数据计算是基于纯Java。
它的存在并不依赖于createrepo
二进制文件,或者在运行Artifactory的主机上运行外部进程。
触发RPM元数据更新
启用后,元数据计算将由某些操作自动触发,也可以由其他操作手动调用。无论采用哪种方式,生成的元数据都将提供给YUM客户机。
自动
RPM元数据自动计算:
- 部署、删除、复制和移动RPM文件时。
- 在执行内容导入(系统和存储库导入)时。
手册
您可以手动调用RPM元数据计算:
- 通过在Tree Browser中选择本地存储库并单击重新计算指数在行动菜单。
- 通过ArtifactoryREST API.
元数据计算清除由于手动部署或导入而已经存在的RPM元数据。这包括作为SQLite数据库文件存储的RPM元数据。
索引文件列表
的filelists.xml
RPM存储库的元数据文件包含存储库中托管的每个包中的所有文件的列表。当存储库包含许多包时,由于与YUM客户端交互而重新索引该文件可能会占用大量资源,从而导致性能下降。因此,从5.4版本开始,当创建RPM存储库时,该文件的重新索引将被禁用。启用索引filelists.xml
,设置启用文件列表索引复选框。
请注意filelists.xml
如果它聚合的任何存储库没有启用文件列表,则虚拟存储库的元数据文件可能不完整(即它可能没有实际列出它聚合的所有文件)。的索引filelists.xml
文件被禁用,则无法使用YUM客户端搜索文件以确定哪个包将查询的文件写入文件系统。
配置
要创建RPM本地存储库,请使用in的政府模块转到存储库|仓库|本地,点击新建本地存储库和选择RPM随着包类型.
局部存储库
如果需要在本地RPM存储库中自动计算RPM元数据,请执行RPM的设置部分基本设置界面,设置自动计算RPM元数据.
场 | 描述 |
---|---|
RPM元数据文件夹深度 |
通知Artifactory在哪个目录级别下搜索rpm并保存 默认情况下,此值为0,并引用存储库的根文件夹。在这种情况下,Artifactory在整个存储库中搜索rpm并保存 在为存储库生成元数据时,根据名称、版本和体系结构将其构件分开的情况下,使用不同的深度是有用的。这将允许您在同一个Artifactory RPM存储库下创建多个RPM存储库。 例如: 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包相关联。 请注意,在每个级别(深度)上 |
远程存储库
人工远程存储库支持开箱即用的rpm,并且不需要任何特殊配置就可以在远程存储库中使用rpm。
你所需要做的就是将您的YUM客户机指向远程存储库,然后您就可以使用YUM和Artifactory了。
要定义一个远程存储库来代理RPM远程存储库,请遵循以下步骤:
- 在政府模块下存储库|存储库|远程,点击新建远程存储库创建一个新的远程存储库。
- 设置库的关键中指定远程存储库的URLURL字段,如下所示。
- 点击保存并完成.
- 回到应用|人工制品|工件模块,在树浏览器,选择存储库。请注意,在Tree Browser中,存储库名称附加了
缓存
. - 点击帮我介绍复制的值
baseurl
标签。 接下来,创建
/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.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包,您还可以将RPM包部署到相同的存储库使用UI或者使用REST API.
通过REST API,您还可以选择按校验和部署或从归档部署.
例如,将一个RPM包部署到一个名为rpm-local你可以用下面的句子:
curl -u: -XPUT http://localhost:8080/artifactory/rpm-local/ -T
其中PATH_TO_METADATA_ROOT指定从存储库根到部署文件夹的路径。
将RPM模块部署到本地存储库
您可以将RPM模块部署到repodata
文件夹,使用modules.yaml
文件,其中包含所有所需的模块,然后继续触发存储库索引以更新repomd.xml
和其他包含模块信息的元数据文件。
您可以直接在JFrog平台UI中执行上传,也可以使用以下命令。
curl -u
: -XPUT "http://localhost:8081/artifactory/rpm-local/ /modules。yaml -T " - 方法触发重新索引计算YUM存储库元数据API.
百胜餐饮集团
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组元数据附加到本地存储库的过程很简单:
- 以YUM使用的组格式创建XML文件。您可以使用任何文本编辑器手动输入它,也可以运行
yum-groups-manager
命令从yum-utils
. - 将创建的组文件部署到
repodata
文件夹中。
Artifactory将自动执行以下步骤:- 创建相应的
. gz
文件,并将其部署到已部署的组XML文件旁边。 - 在本地存储库上调用YUM计算。
- 附加组信息(XML和
. gz
文件)至repomd.xml
文件。
- 创建相应的
- 列表中列出了组文件名YUM集团文件名称字段,位于存储库配置的Basic选项卡下。这告诉Artifactory应该附加哪些文件作为存储库组信息。
YUM组命令
下表列出了一些有用的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=proxy_password=pass
如果你使用yum插件(yum-rhn-plugin
)访问ULN,请指定enableProxy
和httpProxy
设置/etc/sysconfig/rhn/up2date.
此外,如果代理服务器需要身份验证,还需要指定enableProxyAuth
,proxyUser
,proxyPassword
设置如下所示。
enableProxy=1 httpProxy=<代理服务器url> enablexyauth =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 /
目录):
变量 | 描述 |
---|---|
|
将其替换为包的版本,如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[评论摘要]
查看单个RPM信息
您可以通过在Artifactory的树状浏览器中选择一个RPM并选择RPM的信息选项卡。
元数据字段作为属性
相应的RPM元数据字段作为RPM构件的属性自动添加到通过Artifactory访问的YUM存储库中:
rpm.metadata.arch
rpm.metadata.version
rpm.metadata.release
rpm.metadata.epoch
rpm.metadata.group
rpm.metadata.vendor
rpm.metadata.summary
属性可用于搜索和其他功能。有关详细信息,请参阅属性集.
观看视频
观看这个简短的屏幕演示,了解在Artifactory中托管rpm是多么容易。