分类:
2008-04-07 18:40:19
本文档对补丁类型进行了总体概述。此外,本文档还介绍了各种补丁之间的基本关系。
补丁是对操作系统或其他受支持软件中的已知或潜在问题的修复集合。补丁还可以针对特定的软件发行版提供新特性和增强功能。补丁所包含的文件和目录将替换或更新已有的文件和目录。
大多数 Solaris 补丁的交付方式都为一系列稀疏的 SVR4 软件包。补丁可以包含一个或多个稀疏软件包。稀疏软件包只包含 Solaris 初次在发行版中交付软件包之后发生更改的对象。当稀疏软件包中附带有代码更改时,这些软件包将启用小的补丁而不是重新分发完整但却很大的软件包。稀疏软件包可使对客户环境所做的更改降到最低限度。
每个补丁都通过补丁标识号(补丁 ID)进行标识。补丁 ID 由一个六位数的主版本标识号和一个两位数的修订号组成,其格式为:xxxxxx-yy。
补丁是可累积的。后来的修订版中包含以前的修订版中提供的所有功能。例如,补丁 123456-02 包含补丁 123456-01 中的所有功能,此外,还包含在 Revision 02 中所添加的新的错误修复或新功能。这些更改在补丁 README
文件中进行描述。
本节将介绍具体的补丁类型。
表 1. 补丁类型 |
|
以下部分提供了有关补丁特征的基本信息。
README
文件中的关键词通过提供关键词,可使用户识别出哪些补丁可以适用于他们的环境。最重要的关键词是“安全”。安全指明补丁包括安全修复,因此应当被认为更加紧急。其他关键词可能包括受影响的子系统、硬件平台或用户命令。
补丁具有描述补丁属性的关联元数据。元数据包括特殊处理要求,例如“安装后重新启动”或“需要以单用户模式安装”。这些属性在 README
文件中被转换为文本,用户应当阅读这些内容。
Solaris 补丁实用工具也会利用包含在 pkginfo
和 pkgmap
文件中的元数据。
补丁包含特定于 Solaris 区域的元数据,以确保正确地修补区域环境。可在下列参考资料中找到详细信息:
参阅 命令 -G
选项
参阅
补丁中所提供的功能(错误修复或新增功能)可能与其他补丁中所提供的功能具有相互联系。
这些相互联系由软件包的 pkginfo
文件中的三个字段确定:
SUNW_REQUIRES
字段,标识补丁依赖关系。必须首先安装这些前提补丁才能安装此补丁。
SUNW_OBSOLETES
字段,标识其内容已经累积到此补丁中的补丁。这个新补丁将废弃最初的补丁。
SUNW_INCOMPAT
字段,标识与此补丁不兼容并因此不能在同一个系统上安装的补丁。
这些字段被 Solaris patchadd
和 patchrm
命令自动用来确保被修补的目标系统的一致性。这些字段还在补丁的 README
文件中转换为人类可读的格式。
SUNW_REQUIRES
字段SUNW_REQUIRES
标识补丁依赖关系。补丁中提供的功能可能与在其他补丁中提供的更改或功能之间具有代码依赖关系。因此,一个补丁会需要一个或多个其他补丁才能正确运行。如果某个补丁依赖于一个或多个补丁,则该补丁将在补丁的软件包的 pkginfo
文件的 SUNW_REQUIRES
字段中指定所需的补丁。此信息还被反映在 README
文件中。必须首先安装这类前提补丁才能安装此补丁。
依赖关系要求只能是单向起作用的。如果补丁 A 需要补丁 B,则补丁 B 不能需要补丁 A。因为补丁是累积的,如果补丁 A-01 需要补丁 B-01,则补丁 B 的任何修订版都会大于或等于 -01,因此也会满足要求。
如果存在其他类型的依赖关系,则将在补丁 README 文件中指定,它可能包括下列内容:
条件依赖关系表示硬编码的补丁依赖关系,它仅在特定条件下出现。例如,当且仅当 CDE 1.3 安装在目标系统上时。
软依赖关系表示要求其补丁完全提供特定的错误修复或功能,但是系统在没有其他补丁的情况下仍保持在一致性状态中。
SUNW_OBSOLETES
字段SUNW_OBSOLETES
字段标识补丁累积和废弃。有时错误修复或新增功能导致两个或多个现有补丁变得关系紧密。例如,两个补丁之间可能存在双向的硬编码依赖关系。在这种情况下,可能必须将两个或多个补丁的功能累积到一个补丁中,因此需要废弃其他补丁。其他补丁的功能被累积到其中的补丁指定已被废弃的补丁的 ID。此信息位于补丁的稀疏软件包中提供的 pkginfo
文件中的 SUNW_OBSOLETES
字段中。这种声明称为显式废弃。
补丁累积只能是单向起作用的。也就是说,如果补丁 A 累积了补丁 B,则现在补丁 A 中会包含所有补丁 B 的功能。补丁 B 现在被废弃。不会再进一步生成补丁 B 的修订版。
由于补丁具有累积性,所以补丁后来的修订版将“隐式”地废弃同一个补丁的早期修订版。被隐式废弃的补丁将不会在 SUNW_OBSOLETES
字段中进行标记。例如,Patch A-Revision xx 不需要在 pkginfo
文件中使用 SUNW_OBSOLETES
条目显式地废弃 Patch A-Revision x-1。
注意 - 对于 Solaris 10 和 Solaris 10 发行版(2007 年 8 月以后)来说,发行的补丁中可能没有包含任何新的更改。此补丁可能声明它废弃了在几个月前发布的另一个补丁。这是 Solaris 更新补丁创建流程产生的结果。如果您已安装了被废弃的补丁,而且新补丁没有列出任何新的更改,则您没有必要安装这个新补丁。
例如,Solaris 10 timezones
补丁 122032-05 被补丁 125378-02 废弃。如果您已经安装了 122032-05,则您没有必要安装 125378-02,因为 125378-02 没有提供任何新的更改。
SUNW_INCOMPAT
字段在少数情况下,会存在两个或多个补丁彼此之间不兼容的情况。不兼容性通常在单点补丁和 IDR 中定义。不兼容性很少在常规补丁中定义。不兼容性在一个或两个软件包的稀疏软件包中的 pkginfo
文件中的 SUNW_INCOMPAT
字段中指定。
补丁不兼容性是双向的。如果补丁 A 或补丁 B 指定与另一个补丁之间存在不兼容性,则目标系统上只能安装两个补丁之中的一个。例如,如果补丁 A 已经安装到目标系统上,而补丁 B 与其不兼容,则补丁安装实用工具 patchadd
将不允许安装补丁 B。如果必须安装补丁 B,则必须首先删除补丁 A。
两个补丁或一个不兼容对不必定义不兼容性。通常情况下,单点补丁或 IDR 会定义不兼容性,因为这些类型的补丁来自非标准代码分支。
以上文章转自于 : http://developers.sun.com.cn/