openSUSE:标准 RPM 元数据补丁

跳转到:导航搜索

Repomd 补丁格式

Geeko-white.png
代码 10
此格式仅用于基于 Code10 的发行版(SLE 10.x 和 SUSE Linux 10.x)
对于 Code 11 及更高版本,请参阅 updateinfo.xml)


有关正确且完整的示例文件,请查看下面的附件

如果您尚未这样做,请先关于补丁。

此页面的其余部分不完整 !!!

头部信息

补丁 xml 表示形式以正常的头部和 <patch> 开头

<?xml version="1.0" encoding="UTF-8"?>
<patch 
xmlns="http://novell.com/package/metadata/suse/patch"
xmlns:patch="http://novell.com/package/metadata/suse/patch"
xmlns:yum="http://linux.duke.edu/metadata/common" 
xmlns:rpm="http://linux.duke.edu/metadata/rpm" 
xmlns:suse="http://novell.com/package/metadata/suse/common"
patchid="foo-12321"
timestamp="2342342"
engine="1.0">
  • patchid 是内部的(就维护而言)名称
  • timestamp 是补丁的构建日期


名称、版本等

然后它继续使用正常的 repomd 格式处理名称、版本等。

<yum:name>foo</yum:name>
<summary lang="en">install if you have lots of foo</summary>
<description lang="en">fixes Bug #231312</description>
<yum:version epoch="0" ver="1" rel="2"/>
<arch>i586</arch>

因此,我们正在查看补丁 foo-1.2.i586

依赖关系

补丁可以具有一组完整的依赖关系,如此处所述。

补丁最重要的两个条件是

  • 是否需要此补丁(为什么)?
  • 需要哪些软件包(是什么)?

freshen 依赖关系回答了为什么这个问题

<suse:freshen><suse:entry kind="package" name="blah"/></suse:freshen>

这意味着:如果安装了软件包 blah,请考虑此补丁。

(如果未安装软件包 blah,则不再考虑此补丁)。

requires 依赖关系回答了是什么问题

<rpm:requires><rpm:entry kind="package" name="blah" ver="5" rel="6" flags="GE"/></rpm:requires>

freshenrequires 依赖关系共同表达

= 如果安装了软件包 blah,则应为 blah =>= 5.6

重要的是要注意,freshenrequires 完全独立。

所有依赖关系都带有 kind 属性,以表示依赖关系是针对补丁还是软件包。

分类

当前定义了三个类别:security(安全)、recommended(推荐)、optional(可选)。

<category>security</category>

相关资源

  • Inst-source-utils - 此软件包包含 createpatch,它将为 SLE10 系统创建仓库。与软件包 makepatchrpm 结合使用,您可以创建补丁仓库。