openSUSE:标准 RPM 元数据补丁
Repomd 补丁格式
![]() |
代码 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>
freshen 和 requires 依赖关系共同表达
= 如果安装了软件包 blah,则应为 blah =>= 5.6
重要的是要注意,freshen 与 requires 完全独立。
所有依赖关系都带有 kind 属性,以表示依赖关系是针对补丁还是软件包。
分类
当前定义了三个类别:security(安全)、recommended(推荐)、optional(可选)。
<category>security</category>
相关资源
- Inst-source-utils - 此软件包包含 createpatch,它将为 SLE10 系统创建仓库。与软件包 makepatchrpm 结合使用,您可以创建补丁仓库。
:
