系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

第 25 章 关于安装了区域的 Solaris 系统上的软件包和修补程序(概述)

Solaris 10 1/06: 对本章进行了彻底修订。

本章介绍如何在安装区域后维护 Solaris 操作系统。提供了有关在全局区域和所有已安装的非全局区域中向操作系统添加软件包和修补程序的信息,同时还包含有关删除软件包和修补程序的信息。本章中的材料是对现有 Solaris 安装和修补程序文档的补充。有关更多信息,请参见 Solaris 10 Release and Installation Collection - Simplified Chinese 和《系统管理指南:基本管理》

本章包含以下主题:

安装区域时打包和修补方面的新增功能

Solaris 10 1/06: 从 Solaris 10 开始,为了记录安装了非全局区域的系统上的软件包命令和修补程序命令的当前行为,重新编写了本章内容。

Solaris 10 6/06: 有关 SUNW_PKG_ALLZONESSUNW_PKG_HOLLOWSUNW_PKG_THISZONE 软件包参数的信息已修订。请参见打包工具和修补程序工具概述软件包参数信息

Solaris 10 6/06 及更高发行版:有关如何注册系统或如何使用 Sun Connection(以前称为 Sun Update Connection)来管理软件更新的信息,请访问 BigAdmin 站点中的 Sun Connection 信息中心

Solaris 10 8/07 及更高发行版:

Solaris 10 5/08 及更高的更新发行版: PatchPro 的 EOF。对 PatchPro 的支持于 2007 年 9 月结束。PatchPro 曾使用修补程序数据库和修补程序工具修补全局和非全局区域中安装的软件。有关最新进程的信息,请参见 Sun xVM Ops Center

Solaris 10 5/08: 尽管是在 Solaris 10 5/08 发行版中添加了此信息,但此信息适用于所有 Solaris 10 系统。

要注册您的 Solaris 系统,请转到 https://inventory.sun.com/inventory/。有关如何使用 Sun Inventory 注册硬件、软件和操作系统的信息,请参见 Sun Inventory 信息中心

如果使用 Sun xVM Ops Center 在数据中心中置备、更新和管理系统,请参见 Sun xVM 信息中心,了解有关如何向 Sun xVM Ops Center 注册软件的信息。

Solaris 10 10/09:区域并行修补是标准 Solaris 10 修补实用程序的一种增强功能。对于 Solaris 10 10/09 之前的发行版,该修补程序是在修补实用程序的修补程序 119254-66 或更高版本 (SPARC) 以及 119255-66 或更高版本 (x86) 中提供的。请参见Solaris 10 10/09:可减少修补时间的区域并行修补Solaris 10 10/09:如何以并行方式修补非全局区域。另请参见将附加时更新 (Update on Attach) 用作修补解决方案,这是用于快速更新系统区域的修补程序的建议方法。

有关 Solaris 10 新增功能的完整列表以及 Solaris 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》

打包工具和修补程序工具概述

Solaris 打包工具用于管理区域环境。全局管理员可以将系统升级到新版本的 Solaris,此操作会同时更新全局区域和非全局区域。

Solaris Live Upgrade、标准 Solaris 交互式安装程序或自定义 JumpStart 安装程序可用于在全局区域中对包含非全局区域的系统进行升级。以下限制适用于在 ZFS 上具有 zonepath 的区域:

有关更多信息,请参见《Oracle Solaris ZFS 管理指南》中的“使用 Oracle Solaris Live Upgrade 迁移或升级具有区域的系统 (Solaris 10 10/08)”

在本文档介绍的限制范围之内,区域管理员可以使用打包工具来管理安装在非全局区域中的任何软件。

安装区域时,将应用以下一般原则:


注 –

当执行某些软件包和修补程序操作时,将针对此类型的其他操作暂时锁定区域。系统也可能会在继续执行请求的操作之前向管理员确认。


关于软件包和区域

当安装非全局区域时,仅会完全复制全局区域中安装的部分 Solaris 软件包。例如,很多包含 Solaris 内核的软件包在非全局区域中是不需要的。所有非全局区域隐含共享全局区域中的同一 Solaris 内核。但是,即使非全局区域不需要或者不使用软件包的数据,非全局区域也可能需要在全局区域中安装软件包的信息。利用此信息,可以通过全局区域正确解析非全局区域中软件包的相关性。

软件包的参数可以控制软件包内容的分发方式,并使这些内容在安装了非全局区域的系统上可见。SUNW_PKG_ALLZONESSUNW_PKG_HOLLOWSUNW_PKG_THISZONE 软件包参数定义安装了区域的系统上的软件包的特征。如果需要,在区域环境中应用或删除软件包时,系统管理员可以检查这些软件包参数的设置,以检验软件包的适用性。可以使用 pkgparam 命令查看这些参数的值。有关参数的更多信息,请参见软件包参数信息。有关使用说明,请参见在安装了区域的系统上检查软件包参数设置

有关软件包特征和参数的信息,请参见 pkginfo(4) 手册页。有关显示软件包参数值的信息,请参见 pkgparam(1) 手册页。

针对软件包生成的修补程序

针对任何软件包生成修补程序时,必须将参数设置为与原始软件包相同的值。

交互式软件包

任何必须为交互式的软件包(这意味着该软件包具有请求脚本)仅添加到当前区域。软件包不会传播到其他任何区域。如果将交互式软件包添加到全局区域中,则对该软件包的处理类似于使用带有 -G 选项的 pkgadd 命令进行添加。有关此选项的更多信息,请参见关于在区域中添加软件包

保持区域同步

最好使非全局区域中安装的软件与全局区域中安装的软件尽可能保持同步。此做法可最大限度地降低管理安装了多个区域的系统的难度。

要实现此目标,在全局区域中添加或删除软件包时,软件包工具会强制执行以下规则。

全局区域中可能的软件包操作

如果软件包当前既没有安装在全局区域中,也没有安装在任何非全局区域中,则可将其安装在以下位置:

如果软件包当前仅安装在全局区域中:

如果软件包当前安装在全局区域和仅部分非全局区域中:

如果软件包当前安装在全局区域和所有非全局区域中,则该软件包可以从全局区域和所有非全局区域中删除。

这些规则可以确保以下情况:

非全局区域中可能的软件包操作

任何非全局区域中可能的软件包操作包括:

区域状态对修补程序和软件包操作有何影响

下表介绍了在非全局区域处于各种状态的系统中使用 pkgaddpkgrmpatchaddpatchrm 命令时将发生的情况。

请注意,已针对 Solaris 10 5/08 发行版修订了此表中已安装状态的说明。

区域状态 

对软件包和修补程序操作的影响 

已配置 

修补程序和软件包工具可以运行。尚未安装任何软件。 

已安装 

修补程序和软件包工具可以运行。在修补或打包操作期间,系统会将区域从已安装状态移至称为已挂载的新内部状态。完成修补后,区域将恢复为已安装状态。 

请注意,在执行完 zoneadm -z zonename install 后,区域也会立即移至已安装状态。处于已安装状态并且从未引导的区域不能进行修补,也不能运行打包命令。至少要将该区域引导至正在运行状态一次。在至少引导一次区域、然后通过 zoneadm halt 再返回已安装状态后,便可运行修补程序和打包命令。

就绪 

修补程序和软件包工具可以运行。 

正在运行 

修补程序和软件包工具可以运行。 

未完成 

zoneadm 正在安装或删除区域。无法使用软件包和修补程序工具。这些工具不能使区域进入使用工具所需的相应状态。

关于在区域中添加软件包

使用 pkgadd(1M) 手册页中所述的 pkgadd 系统实用程序,可以在安装了区域的 Solaris 系统上添加软件包。

在全局区域中使用 pkgadd

pkgadd 实用程序可以在全局区域中与 -G 选项一起使用,以仅向全局区域中添加软件包。软件包不会传播到其他任何区域。请注意,如果 SUNW_PKG_THISZONE=true,则不必使用 -G 选项。如果 SUNW_PKG_THISZONE=false,则 -G 选项会将其覆盖。

在全局区域中运行 pkgadd 实用程序时,将会进行以下操作。

添加软件包到全局区域和所有非全局区域

要将软件包添加到全局区域和所有非全局区域,请在全局区域中执行 pkgadd 实用程序。以全局管理员的身份,运行不带 -G 选项的 pkgadd

可以将软件包添加到全局区域和所有非全局区域中,而不用考虑受其影响的区域。

pkgadd 实用程序会执行以下步骤:

仅向全局区域中添加软件包

要仅向全局区域中添加软件包,请在全局区域中以全局管理员身份执行仅带有 -G 选项的 pkgadd 实用程序。

如果以下情况成立,则可以将软件包添加到全局区域中:

pkgadd 实用程序会执行以下步骤:

向所有非全局区域中添加安装在全局区域中的软件包

要向所有非全局区域中添加已安装在全局区域中的软件包,当前必须从全局区域中删除该软件包,然后在所有区域中重新安装。

以下是用于向所有非全局区域中添加已安装在全局区域中的软件包的步骤:

  1. 在全局区域中,使用 pkgrm 删除软件包。

  2. 在不使用 -G 选项的情况下添加软件包。

在非全局区域中使用 pkgadd

要在指定的非全局区域中添加软件包,请以区域管理员身份执行不带任何选项的 pkgadd 实用程序。需要满足以下条件:

pkgadd 实用程序会执行以下步骤:

关于在区域中删除软件包

pkgrm(1M) 手册页中所述的 pkgrm 实用程序支持在安装了区域的 Solaris 系统上删除软件包。

在全局区域中使用 pkgrm

在全局区域中使用 pkgrm 实用程序时,将进行以下操作。

请注意,只有在以下情况成立时,才能由非全局区域中的区域管理员将软件包从该区域中删除。

从全局区域和所有非全局区域中删除软件包

要从全局区域和所有非全局区域中删除软件包,请以全局管理员的身份在全局区域中执行 pkgrm 实用程序。

可以从全局区域和所有非全局区域中删除软件包,而不用考虑受其影响的区域。

pkgrm 实用程序会执行以下步骤:

在非全局区域中使用 pkgrm

以区域管理员身份在非全局区域中使用 pkgrm 实用程序来删除软件包。将应用以下限制:

pkgrm 实用程序会执行以下步骤:

软件包参数信息

设置区域的软件包参数

SUNW_PKG_ALLZONESSUNW_PKG_HOLLOWSUNW_PKG_THISZONE 软件包参数定义安装了区域的系统上的软件包的特征。必须设置这些参数,以便可在安装了非全局区域的系统上管理软件包。

下表列出了设置软件包参数的四种有效组合。如果您选择的设置组合未在下表中列出,则这些设置无效并且将无法安装软件包。

请确保您已设置了全部三个软件包参数。可以将这三个软件包参数保留为空。软件包工具会将缺少的区域软件包参数解释成设置为 false,但是绝对不建议不设置这些参数。通过设置全部三个软件包参数,可以指定安装或删除软件包时,软件包工具应当表现的确切行为。

表 25–1 有效的软件包参数设置

SUNW_PKG_ALLZONES 设置

SUNW_PKG_HOLLOW 设置

SUNW_PKG_THISZONE 设置

软件包说明 

false 

false 

false 

此为软件包的缺省设置,该设置不会指定所有区域软件包参数的值。 

具有这些设置的软件包既可安装在全局区域中,也可安装在非全局区域中。  

  • 如果在全局区域中运行 pkgadd 命令,则会将软件包安装在全局区域和所有非全局区域中。

  • 如果在非全局区域中运行 pkgadd 命令,则仅将软件包安装在非全局区域中。

在这两种情况下,软件包的所有内容都会在其安装所在的所有区域中可见。 

false 

false 

true 

具有这些设置的软件包既可安装在全局区域中,也可安装在非全局区域中。如果在安装软件包之后创建新的非全局区域,则软件包不会传播到这些新的非全局区域。 

  • 如果在全局区域中运行 pkgadd 命令,则仅将软件包安装在全局区域中。

  • 如果在非全局区域中运行 pkgadd 命令,则仅将软件包安装在非全局区域中。

在这两种情况下,软件包的所有内容都会在其安装所在的区域中可见。 

true 

false 

false 

具有这些设置的软件包只能安装在全局区域中。运行 pkgadd 命令时,会将软件包安装在全局区域和所有非全局区域中。软件包的所有内容在所有区域中可见。


注 –

任何将软件包安装在非全局区域中的尝试都会失败。


true 

true 

false 

具有这些设置的软件包只能由全局管理员安装在全局区域中。运行 pkgadd 命令时,软件包的内容会全部安装在全局区域中。如果软件包的软件包参数设置为这些值,则不会在任何非全局区域中提供软件包内容本身。非全局区域中仅会安装使软件包显示为已安装状态所必需的软件包安装信息。这将安装依赖于该软件包的要安装的其他软件包。

为了检查软件包的相关性,该软件包显示为已安装在所有区域中。 

  • 在全局区域中,该软件包的所有内容均可见。

  • 在完全根非全局区域中,该软件包的所有内容均不可见。

  • 当非全局区域从全局区域中继承文件系统时,安装在该文件系统中的软件包在非全局区域中可见,而该软件包所提供的所有其他文件在非全局区域中均不可见。

    例如,稀疏根非全局区域 (sparse root non-global zone) 与全局区域共享某些目录。这些目录为只读目录。稀疏根非全局区域与其他区域共享 /platform 文件系统。另一个示例为软件包提供仅与引导硬件有关的文件。


注 –

任何将软件包安装在非全局区域中的尝试都会失败。


SUNW_PKG_ALLZONES 软件包参数

可选的 SUNW_PKG_ALLZONES 软件包参数说明软件包的区域范围。此参数定义了以下内容:

SUNW_PKG_ALLZONES 软件包参数有两个允许的值。这些值为 truefalse。缺省值为 false。如果未设置此参数或将其设置为除 truefalse 以外的值,则会使用值 false

对于在所有区域中必须是同一软件包版本并属于同一修补程序修订版级别的软件包,应将 SUNW_PKG_ALLZONES 参数设置为 true。对于所提供的功能依赖于某个特定 Solaris 内核(例如 Solaris 10)的任何软件包,应将此参数设置为 true。任何用于软件包的修补程序都必须将 SUNW_PKG_ALLZONES 参数值设置为与正在修补的已安装软件包中设置的值相同。对于将此参数设置为 true 的任何软件包,其修补程序修订版级别在所有区域中都必须相同。

对于所提供的功能不依赖于某个特定 Solaris 内核(例如第三方软件包或 Sun 编译器)的软件包,应将此参数设置为 false。对于将此参数设置为 false 的软件包,其修补程序也必须将此参数设置为 false。对于任何将此参数设置为 false 的软件包,其软件包版本或修补程序修订版级别在不同区域中可以不同。例如,两个非全局区域可以安装不同版本的 Web 服务器。

下表描述了 SUNW_PKG_ALLZONES 软件包的参数值。

表 25–2 SUNW_PKG_ALLZONES 软件包参数值

值 

说明 

false

该软件包仅能从全局区域安装到全局区域,或从全局区域安装到全局区域和所有非全局区域。该软件包还可以从任何非全局区域安装到同一非全局区域。 

  • 全局管理员仅能将软件包安装在全局区域中。

  • 全局管理员可以将软件包安装在全局区域和所有非全局区域中。

  • 区域管理员可将软件包安装在非全局区域中。

如果将软件包从全局区域中删除,则不会将其从其他区域中删除。可以将软件包从单个非全局区域中删除。 

  • 不要求将软件包安装在全局区域中。

  • 不要求将软件包安装在任何非全局区域中。

  • 不要求软件包在所有区域中均相同。各区域可以有不同版本的软件包。

  • 软件包提供的软件不在所有区域中隐含共享。这意味着软件包并不是操作系统特定的。大多数应用程序级的软件都属于这一类别。例如 StarSuite 产品或 Web 服务器。

true

如果将软件包安装在全局区域中,则还必须将其安装在所有非全局区域中。如果将软件包从全局区域中删除,则还必须将其从所有非全局区域中删除。 

  • 如果安装软件包,必须将其安装在全局区域中。然后,该软件包会自动安装在所有非全局区域中。

  • 软件包的版本在所有区域中均必须相同。

  • 软件包提供的软件在所有区域中隐含共享。软件包依赖于在所有区域中隐含共享的软件版本。软件包应当在所有非全局区域中可见。例如内核模块。

    利用这些软件包,非全局区域可以通过获取所有非全局区域中安装的整个软件包,来解析安装在全局区域中的软件包的相关性。

  • 仅有全局管理员才能安装软件包。区域管理员不能在非全局区域中安装软件包。

SUNW_PKG_HOLLOW 软件包参数

SUNW_PKG_HOLLOW 软件包参数定义了在要求将软件包安装在所有区域中并且在所有区域内均相同的情况下,该软件包是否应当在任何非全局区域中可见。

SUNW_PKG_HOLLOW 软件包参数有两个允许的值 truefalse

下表描述了 SUNW_PKG_HOLLOW 软件包的参数值。

表 25–3 SUNW_PKG_HOLLOW 软件包参数值

值 

说明 

false

这不是“空”软件包: 

  • 如果将软件包安装在全局区域中,则必须在所有非全局区域中提供软件包的内容和安装信息。

  • 该软件包提供的软件应在所有非全局区域中可见。例如提供 truss 命令的软件包。

  • SUNW_PKG_ALLZONES 软件包参数的当前设置的限制以外,未定义其他限制。

true

这是“空”软件包: 

  • 任何非全局区域中均未显示软件包的内容。但是,要求在所有非全局区域中提供软件包的安装信息。

  • 软件包提供的软件不应在所有非全局区域中可见。例如仅在全局区域中运行的内核驱动程序和系统配置文件。利用该设置,非全局区域可以解析仅安装在全局区域中的软件包的相关性,而无需实际安装软件包数据。

  • 为了使依赖于正在安装的软件包的其他软件包进行相关性检查,该软件包识别为安装在所有区域中。

  • 该软件包设置包括针对将 SUNW_PKG_ALLZONES 设置为 true 所定义的所有限制。

  • 在全局区域中,软件包识别为已安装,并且安装了该软件包的所有组件。安装软件包时,会创建目录、安装文件,并相应地运行类操作和其他脚本。

  • 在非全局区域中,软件包识别为已安装,但是未安装该软件包的任何组件。安装软件包时,不创建任何目录、不安装任何文件,也不运行任何类操作或其他安装脚本。

  • 从全局区域中删除软件包时,系统会将该软件包识别为已完全安装。删除软件包时,会删除相应的目录和文件、运行类操作或其他安装脚本。

SUNW_PKG_THISZONE 软件包参数

SUNW_PKG_THISZONE 软件包参数定义了是否必须将软件包仅安装在当前区域(全局或非全局区域)中。SUNW_PKG_THISZONE 软件包参数有两个允许的值。这些值为 truefalse。缺省值为 false

下表描述了 SUNW_PKG_THISZONE 软件包的参数值。

表 25–4 SUNW_PKG_THISZONE 软件包参数值

值 

说明 

false

  • 如果在非全局区域中运行 pkgadd,则软件包仅安装在当前区域中。

  • 如果在全局区域中运行 pkgadd,则软件包会安装在全局区域以及所有当前安装的非全局区域中。此外,软件包将传播到所有将来新安装的非全局区域。

true

  • 软件包仅安装在当前区域中。

  • 如果将软件包安装在全局区域中,则不会将该软件包添加到任何当前现有的或待创建的非全局区域中。这与将 -G 选项指定到 pkgadd 时出现的行为相同。

软件包信息查询

pkginfo(1) 手册页中所述的 pkginfo 实用程序支持查询安装了区域的 Solaris 系统上的软件包数据库。有关该数据库的信息,请参见产品数据库

可以在全局区域中使用 pkginfo 实用程序来查询仅位于全局区域中的软件包数据库。可以在非全局区域中使用 pkginfo 实用程序来查询仅位于非全局区域中的软件包数据库。

关于在区域中添加修补程序

通常,修补程序由以下几个部分组成:

使用 patchadd 命令应用修补程序时,修补程序信息用于确定该修补程序是否适用于当前正在运行的系统。如果确定不适用,则不应用该修补程序。还会针对系统上的所有区域检查修补程序的相关性。如果不满足任一所需的相关性,则不应用该修补程序。这可能包括已安装更高版本的修补程序的情况。

修补程序所包含的每个软件包都会进行检查。如果任何区域中都没有安装软件包,则会跳过软件包,不对其进行修补。

如果满足所有相关性,则会使用任何区域中安装的修补程序内的所有软件包来修补系统。软件包和修补程序数据库也会进行更新。


注 –

Solaris 10 3/05 至 Solaris 10 11/06:如果软件包是使用 pkgadd -G 安装的,或者其 pkginfo 设置为 SUNW_PKG_THISZONE=true,则只能使用 patchadd -G 修补该软件包。Solaris 8/07 发行版中已取消此限制。


Solaris 10 8/07:延迟激活修补

从修补程序 119254-41 和 119255-41 开始,对 patchaddpatchrm 修补程序安装实用程序进行了修改,从而改变了某些修补程序提供功能的处理方式。此修改将影响上述修补程序在任何 Solaris 10 发行版上的安装。这些延迟激活的修补程序能够更好地处理功能修补程序(例如与 Solaris 10 3/05 发行版之后的 Solaris 10 发行版相关联的内核修补程序)中提供的大范围更改。

延迟激活的修补使用回送文件系统 (loopback file system, lofs) 来确保正在运行的系统的稳定性。将修补程序应用于正在运行的系统时,lofs 可以保持修补过程中的稳定性。这些较大的内核修补程序始终需要重新引导,但现在所需的重新引导将激活 lofs 所做的更改。修补程序 README 提供了有关哪些修补程序需要重新引导的说明。

如果正在运行非全局区域或已禁用 lofs,请在安装或删除延迟激活的修补程序时考虑以下几点:


注 –

使用 Solaris Live Upgrade 管理修补可避免与修补正在运行的系统相关联的问题。Solaris Live Upgrade 可减少与修补相关的停机时间,并且可在发生问题时提供回退功能来遏制风险。当系统仍在生产时,可以修补非活动引导环境;当在新的 BE 中发现问题时,可以引导回退至初始引导环境 (boot environment, BE)。请参见《Oracle Solaris 10 9/10 安装指南:Solaris Live 升级和升级规划》中的“使用软件包或修补程序升级系统”


Solaris 10 10/09:可减少修补时间的区域并行修补

区域并行修补是标准 Solaris 10 修补实用程序的一种增强功能,此功能构成了在 Solaris 10 系统上修补非全局区域的支持方法。此功能通过以并行方式修补非全局区域改进了区域修补性能。

对于 Solaris 10 10/09 之前的发行版,该功能是在修补实用程序的修补程序 119254-66 或更高版本 (SPARC) 以及 119255-66 或更高版本 (x86) 中提供的。

patchadd 的新配置文件 /etc/patch/pdo.conf 中,对以并行方式进行修补的非全局区域的最大数量进行了设置。该修补程序的修订版 66 或更高版本适用于所有 Solaris 10 系统以及诸如 Sun xVM Ops Center 等的更高级别自动修补工具。

仍然先修补全局区域。完成对全局区域的修补后,将按 num_proc= 中设置的非全局区域数量对非全局区域一起进行修补。最大数量为联机 CPU 数量的 1.5 倍,最多为系统中的实际非全局区域数量。

举例如下:

如果系统中有超过该数量的非全局区域,则将以并行方式修补前 6 个非全局区域,当进程完成第一组修补时,再修补剩余的非全局区域。

使用 Solaris Live Upgrade 和新的修补程序管理修补可在发生问题时提供回退功能。当系统仍在工作时,可以修补非活动引导环境;当在新的 BE 中发现问题时,可以引导回退至初始引导环境 (boot environment, BE)。

另请参见Solaris 10 10/09:如何以并行方式修补非全局区域


注 –

要快速更新区域的所有软件包,以便这些软件包匹配在主机上新安装的非全局区域中查看的信息,可在修补全局区域时分离这些区域,然后使用 -U 选项重新附加以匹配全局区域的级别。有关更多信息,请参见将附加时更新 (Update on Attach) 用作修补解决方案


在安装了区域的 Solaris 系统上应用修补程序

在全局区域级别上应用的所有修补程序会在所有区域中应用。安装非全局区域后,该区域与全局区域处于同一修补程序级别。修补全局区域时,会对所有非全局区域进行类似的修补。此操作保持所有区域中的修补程序级别相同。

使用 patchadd(1M) 手册页中所述的 patchadd 系统实用程序,可以在安装了区域的系统上添加修补程序。

在全局区域中使用 patchadd

要向全局区域和所有非全局区域中添加修补程序,请以全局管理员身份在全局区域中运行 patchadd

在全局区域中使用 patchadd 时,将应用以下条件:

在向全局区域和所有非全局区域中添加修补程序时,不必考虑该修补程序是否会影响从全局区域共享的区域。

patchadd 实用程序会执行以下步骤:

在非全局区域中使用 patchadd

当区域管理员在某个非全局区域中使用 patchadd 时,此实用程序仅能将修补程序添加到该区域中。在以下情况下,可将修补程序添加到非全局区域中:

patchadd 实用程序会执行以下步骤:

安装有区域的系统上的 patchadd -Gpkginfo 变量之间的交互

以下列表指定在全局和非全局区域中添加修补程序时 -G 选项和 SUNW_PKG_ALLZONES 变量之间的交互。

全局区域,已指定 -G

如果任意软件包具有 SUNW_PKG_ALLZONES=TRUE 设置,则将产生错误且不执行任何操作。

如果任何软件包都不具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序仅应用于全局区域中的软件包。

全局区域,未指定 -G

如果任意软件包具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序将应用于所有区域中的相应软件包。

如果任意软件包不具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序将应用于所有相应区域中的这些软件包。仅用于全局区域的软件包将只在全局区域中安装。

非全局区域,已指定或未指定 -G

如果任意软件包具有 SUNW_PKG_ALLZONES=TRUE 设置,则将产生错误且不执行任何操作。

如果任何软件包都不具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序仅应用于非全局区域中的软件包。

在安装了区域的 Solaris 系统上删除修补程序

使用 patchrm(1M) 手册页中所述的 patchrm 系统实用程序,可以在安装了区域的系统上删除修补程序。

在全局区域中使用 patchrm

您可以在全局区域中以全局管理员身份使用 patchrm 实用程序来删除修补程序。patchrm 实用程序不能仅从全局区域中删除修补程序,也不能从部分非全局区域中删除它们。

在非全局区域中使用 patchrm

您可以在非全局区域中以区域管理员身份使用 patchrm 实用程序仅从该非全局区域中删除修补程序。修补程序不能影响共享的区域。

产品数据库

每个区域各自的软件包、修补程序和产品注册表数据库都详细介绍了区域中可用的所有已安装软件。安装附加软件或修补程序时要执行所有相关性检查,但不会访问其他任何区域的数据库,除非正在全局区域和一个或多个非全局区域中安装或删除软件包或修补程序。在这种情况下,必须访问相应的非全局区域数据库。

有关数据库的更多信息,请参见 pkgadm(1M) 手册页。