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_ALLZONES、SUNW_PKG_HOLLOW 和 SUNW_PKG_THISZONE 软件包参数的信息已修订。请参见打包工具和修补程序工具概述和软件包参数信息。
Solaris 10 6/06 及更高发行版:有关如何注册系统或如何使用 Sun Connection(以前称为 Sun Update Connection)来管理软件更新的信息,请访问 BigAdmin 站点中的 Sun Connection 信息中心。
Solaris 10 8/07 及更高发行版:
使用 patchadd 命令向软件包中添加修补程序时,如果该软件包是使用带有 -G 选项的 pkgadd 命令安装的,则 patchadd 命令将不再需要 -G 选项。
添加了一个表,此表介绍在非全局区域处于各种状态的系统中使用 pkgadd、 pkgrm、patchadd 和 patchrm 命令时将会发生的情况。请参见区域状态对修补程序和软件包操作有何影响。
添加了对 patchadd -G 和 pkginfo 变量之间的交互的阐述。请参见安装有区域的系统上的 patchadd -G 和 pkginfo 变量之间的交互。
添加了关于延迟激活修补的信息。请参见Solaris 10 8/07:延迟激活修补。
删除了关于 pkgrm 命令的 -G 选项的信息。
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 的区域:
Solaris Live Upgrade 对 ZFS 上具有 zonepath 的系统的支持开始于 Solaris 10 10/08 发行版。
仅 Solaris Live Upgrade 可用于更新该系统。
有关更多信息,请参见《Oracle Solaris ZFS 管理指南》中的“使用 Oracle Solaris Live Upgrade 迁移或升级具有区域的系统 (Solaris 10 10/08)”。
在本文档介绍的限制范围之内,区域管理员可以使用打包工具来管理安装在非全局区域中的任何软件。
安装区域时,将应用以下一般原则:
全局区域管理员可以管理系统上每个区域中的软件。
通过使用 Solaris 打包和修补程序工具,可以从全局区域管理非全局区域的根文件系统。在非全局区域中支持使用 Solaris 打包和修补程序工具管理共同打包(捆绑)产品、独立(非绑定)产品或第三方产品。
打包和修补程序工具在启用了区域的环境中工作。使用这些工具,还可以将全局区域中安装的软件包或修补程序安装在非全局区域中。
SUNW_PKG_ALLZONES 软件包参数定义软件包的区域范围。此范围确定了可以安装单独软件包的区域类型。有关此参数的更多信息,请参见SUNW_PKG_ALLZONES 软件包参数。
需要在所有区域中安装某软件包并要求此软件包在所有区域中均相同时,可使用 SUNW_PKG_HOLLOW 软件包参数定义软件包的可见性。有关此参数的信息,请参见SUNW_PKG_HOLLOW 软件包参数。
SUNW_PKG_THISZONE 软件包参数定义是否必须将软件包仅安装在当前区域中。有关此参数的信息,请参见SUNW_PKG_THISZONE 软件包参数。
未定义区域软件包参数值的软件包具有缺省设置 false。
非全局区域中可见的打包信息与使用 Solaris 打包和修补程序工具已安装在该区域中的文件一致。打包信息与 inherit-pkg-dir 目录保持同步。
可以将某项更改(例如添加到全局区域中的修补程序或软件包)应用到所有区域。此功能可保持全局区域和每个非全局区域之间的一致性。
软件包命令可以添加、删除和询问软件包。修补程序命令可以添加和删除修补程序。
当执行某些软件包和修补程序操作时,将针对此类型的其他操作暂时锁定区域。系统也可能会在继续执行请求的操作之前向管理员确认。
当安装非全局区域时,仅会完全复制全局区域中安装的部分 Solaris 软件包。例如,很多包含 Solaris 内核的软件包在非全局区域中是不需要的。所有非全局区域隐含共享全局区域中的同一 Solaris 内核。但是,即使非全局区域不需要或者不使用软件包的数据,非全局区域也可能需要在全局区域中安装软件包的信息。利用此信息,可以通过全局区域正确解析非全局区域中软件包的相关性。
软件包的参数可以控制软件包内容的分发方式,并使这些内容在安装了非全局区域的系统上可见。SUNW_PKG_ALLZONES、SUNW_PKG_HOLLOW 和 SUNW_PKG_THISZONE 软件包参数定义安装了区域的系统上的软件包的特征。如果需要,在区域环境中应用或删除软件包时,系统管理员可以检查这些软件包参数的设置,以检验软件包的适用性。可以使用 pkgparam 命令查看这些参数的值。有关参数的更多信息,请参见软件包参数信息。有关使用说明,请参见在安装了区域的系统上检查软件包参数设置。
有关软件包特征和参数的信息,请参见 pkginfo(4) 手册页。有关显示软件包参数值的信息,请参见 pkgparam(1) 手册页。
针对任何软件包生成修补程序时,必须将参数设置为与原始软件包相同的值。
任何必须为交互式的软件包(这意味着该软件包具有请求脚本)仅添加到当前区域。软件包不会传播到其他任何区域。如果将交互式软件包添加到全局区域中,则对该软件包的处理类似于使用带有 -G 选项的 pkgadd 命令进行添加。有关此选项的更多信息,请参见关于在区域中添加软件包。
最好使非全局区域中安装的软件与全局区域中安装的软件尽可能保持同步。此做法可最大限度地降低管理安装了多个区域的系统的难度。
要实现此目标,在全局区域中添加或删除软件包时,软件包工具会强制执行以下规则。
如果软件包当前既没有安装在全局区域中,也没有安装在任何非全局区域中,则可将其安装在以下位置:
仅安装在全局区域中,前提是 SUNW_PKG_ALLZONES=false
仅安装在当前(全局)区域中,前提是 SUNW_PKG_THISZONE=true
安装在全局区域和所有非全局区域中
如果软件包当前仅安装在全局区域中:
该软件包可以安装在所有非全局区域中。
该软件包可以从全局区域中删除。
如果软件包当前安装在全局区域和仅部分非全局区域中:
SUNW_PKG_ALLZONES 必须设置为 false。
该软件包可以安装在所有非全局区域中。任何非区域中的现有实例都会更新到安装的修订版。
该软件包可以从全局区域中删除。
该软件包可以从全局区域和所有非全局区域中删除。
如果软件包当前安装在全局区域和所有非全局区域中,则该软件包可以从全局区域和所有非全局区域中删除。
这些规则可以确保以下情况:
安装在全局区域中的软件包仅安装在全局区域中,或是安装在全局区域和所有非全局区域中。
安装在全局区域和任何非全局区域中的软件包在所有区域中均相同。
任何非全局区域中可能的软件包操作包括:
如果软件包当前未安装在非全局区域中,则仅当 SUNW_PKG_ALLZONES=false 时,才能安装软件包。
软件包可以安装在当前(非全局)区域中,前提是 SUNW_PKG_THISZONE=true。
如果软件包当前安装在非全局区域中:
仅当 SUNW_PKG_ALLZONES=false 时,才可以通过软件包的现有实例安装软件包。
仅当 SUNW_PKG_ALLZONES=false 时,才能从非全局区域中删除软件包。
下表介绍了在非全局区域处于各种状态的系统中使用 pkgadd、pkgrm、patchadd 和 patchrm 命令时将发生的情况。
请注意,已针对 Solaris 10 5/08 发行版修订了此表中已安装状态的说明。
区域状态 |
对软件包和修补程序操作的影响 |
---|---|
已配置 |
修补程序和软件包工具可以运行。尚未安装任何软件。 |
已安装 |
修补程序和软件包工具可以运行。在修补或打包操作期间,系统会将区域从已安装状态移至称为已挂载的新内部状态。完成修补后,区域将恢复为已安装状态。 请注意,在执行完 zoneadm -z zonename install 后,区域也会立即移至已安装状态。处于已安装状态并且从未引导的区域不能进行修补,也不能运行打包命令。至少要将该区域引导至正在运行状态一次。在至少引导一次区域、然后通过 zoneadm halt 再返回已安装状态后,便可运行修补程序和打包命令。 |
就绪 |
修补程序和软件包工具可以运行。 |
正在运行 |
修补程序和软件包工具可以运行。 |
未完成 |
zoneadm 正在安装或删除区域。无法使用软件包和修补程序工具。这些工具不能使区域进入使用工具所需的相应状态。 |
使用 pkgadd(1M) 手册页中所述的 pkgadd 系统实用程序,可以在安装了区域的 Solaris 系统上添加软件包。
pkgadd 实用程序可以在全局区域中与 -G 选项一起使用,以仅向全局区域中添加软件包。软件包不会传播到其他任何区域。请注意,如果 SUNW_PKG_THISZONE=true,则不必使用 -G 选项。如果 SUNW_PKG_THISZONE=false,则 -G 选项会将其覆盖。
在全局区域中运行 pkgadd 实用程序时,将会进行以下操作。
pkgadd 实用程序可以将软件包添加到以下位置:
仅全局区域,除非软件包设置为 SUNW_PKG_ALLZONES=true
全局区域和所有非全局区域
仅所有非全局区域,前提是软件包已安装在全局区域中
仅当前区域,前提是 SUNW_PKG_THISZONE=true
pkgadd 实用程序不能将软件包添加到以下位置:
非全局区域的任何部分
所有非全局区域,除非软件包已安装在全局区域中
如果在不带 -G 选项,并且 SUNW_PKG_THISZONE=false 的情况下运行 pkgadd 实用程序,则缺省情况下会将指定的软件包添加到所有区域。软件包不会标记为仅安装在全局区域中。
如果在没有 -G 选项和 SUNW_PKG_THISZONE=true 的情况下运行 pkgadd 实用程序,则缺省情况下会将指定的软件包添加到当前(全局)区域。软件包标记为仅安装在全局区域中。
如果使用 -G 选项,则 pkgadd 实用程序将指定的软件包仅添加到全局区域。软件包标记为仅安装在全局区域中。如果安装了任何非全局区域,则不会安装软件包。
要将软件包添加到全局区域和所有非全局区域,请在全局区域中执行 pkgadd 实用程序。以全局管理员的身份,运行不带 -G 选项的 pkgadd。
可以将软件包添加到全局区域和所有非全局区域中,而不用考虑受其影响的区域。
pkgadd 实用程序会执行以下步骤:
检查全局区域和所有非全局区域中软件包的相关性。如果任何区域中都没有安装所需的软件包,则相关性检查将失败。系统会通知全局管理员,提示其是否继续。
将软件包添加到全局区域。
更新全局区域中的软件包数据库。
将软件包添加到每个非全局区域中并更新全局区域中的数据库。
更新每个非全局区域中的软件包数据库。
要仅向全局区域中添加软件包,请在全局区域中以全局管理员身份执行仅带有 -G 选项的 pkgadd 实用程序。
如果以下情况成立,则可以将软件包添加到全局区域中:
该软件包的内容不会影响全局区域中与任何非全局区域共享的任何区域。
该软件包设置为 SUNW_PKG_ALLZONES=false。
pkgadd 实用程序会执行以下步骤:
如果该软件包的内容影响全局区域中与任何非全局区域共享的任何区域,或者软件包设置为 SUNW_PKG_ALLZONES=true,则 pkgadd 将失败。将出现错误消息,告知必须将软件包添加到全局区域和所有非全局区域中。
仅对全局区域执行软件包的相关性检查。如果未安装所需的软件包,则相关性检查将失败。系统会通知全局管理员,提示其是否继续。
将软件包添加到全局区域。
更新全局区域中的软件包数据库。
注释全局区域中的软件包信息,指明仅在全局区域中安装该软件包。如果将来安装非全局区域,则不会安装该软件包。
要向所有非全局区域中添加已安装在全局区域中的软件包,当前必须从全局区域中删除该软件包,然后在所有区域中重新安装。
以下是用于向所有非全局区域中添加已安装在全局区域中的软件包的步骤:
在全局区域中,使用 pkgrm 删除软件包。
在不使用 -G 选项的情况下添加软件包。
要在指定的非全局区域中添加软件包,请以区域管理员身份执行不带任何选项的 pkgadd 实用程序。需要满足以下条件:
pkgadd 实用程序只能将软件包添加到使用该实用程序的非全局区域中。
该软件包不能影响该区域中从全局区域共享的任何区域。
该软件包必须设置为 SUNW_PKG_ALLZONES=false。
pkgadd 实用程序会执行以下步骤:
添加软件包之前,针对非全局区域的软件包数据库检查软件包的相关性。如果未安装所需的软件包,则相关性检查将失败。系统会通知非全局区域管理员,提示其是否继续。如果以下任何一种情况成立,检查将会失败。
软件包的任何组件影响到该区域中从全局区域共享的任何区域。
软件包设置为 SUNW_PKG_ALLZONES=true。
将软件包添加到区域中。
更新区域中的软件包数据库。
pkgrm(1M) 手册页中所述的 pkgrm 实用程序支持在安装了区域的 Solaris 系统上删除软件包。
在全局区域中使用 pkgrm 实用程序时,将进行以下操作。
pkgrm 可以从全局区域和所有非全局区域中删除软件包;如果仅在全局区域中安装了软件包,则 pkgrm 只能从全局区域中删除软件包。
如果软件包还安装在非全局区域中,则 pkgrm 不能仅从全局区域中删除软件包,也不能从非全局区域的任何部分中删除软件包。
请注意,只有在以下情况成立时,才能由非全局区域中的区域管理员将软件包从该区域中删除。
该软件包不会影响非全局区域中从全局区域共享的任何区域。
该软件包设置为 SUNW_PKG_ALLZONES=false。
要从全局区域和所有非全局区域中删除软件包,请以全局管理员的身份在全局区域中执行 pkgrm 实用程序。
可以从全局区域和所有非全局区域中删除软件包,而不用考虑受其影响的区域。
pkgrm 实用程序会执行以下步骤:
检查全局区域和所有非全局区域中软件包的相关性。如果相关性检查失败,则 pkgrm 也会失败。系统会通知全局管理员,提示其是否继续。
从每个非全局区域中删除软件包。
更新每个非全局区域中的软件包数据库。
从全局区域中删除软件包。
更新全局区域中的软件包数据库。
以区域管理员身份在非全局区域中使用 pkgrm 实用程序来删除软件包。将应用以下限制:
pkgrm 仅能从非全局区域中删除软件包。
该软件包不能影响该区域中从全局区域共享的任何区域。
该软件包必须设置为 SUNW_PKG_ALLZONES=false。
pkgrm 实用程序会执行以下步骤:
针对非全局区域中的软件包数据库检查相关性。如果相关性检查失败,则 pkgrm 也会失败并通知区域管理员。如果以下任何一种情况成立,检查将会失败。
软件包的任何组件影响到该区域中从全局区域共享的任何区域。
软件包设置为 SUNW_PKG_ALLZONES=true。
将软件包从区域中删除。
更新区域中的软件包数据库。
SUNW_PKG_ALLZONES、SUNW_PKG_HOLLOW 和 SUNW_PKG_THISZONE 软件包参数定义安装了区域的系统上的软件包的特征。必须设置这些参数,以便可在安装了非全局区域的系统上管理软件包。
下表列出了设置软件包参数的四种有效组合。如果您选择的设置组合未在下表中列出,则这些设置无效并且将无法安装软件包。
请确保您已设置了全部三个软件包参数。可以将这三个软件包参数保留为空。软件包工具会将缺少的区域软件包参数解释成设置为 false,但是绝对不建议不设置这些参数。通过设置全部三个软件包参数,可以指定安装或删除软件包时,软件包工具应当表现的确切行为。
表 25–1 有效的软件包参数设置
可选的 SUNW_PKG_ALLZONES 软件包参数说明软件包的区域范围。此参数定义了以下内容:
是否需要在所有区域中安装软件包
是否需要所有区域中的软件包均相同
SUNW_PKG_ALLZONES 软件包参数有两个允许的值。这些值为 true 和 false。缺省值为 false。如果未设置此参数或将其设置为除 true 或 false 以外的值,则会使用值 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 软件包参数值
SUNW_PKG_HOLLOW 软件包参数定义了在要求将软件包安装在所有区域中并且在所有区域内均相同的情况下,该软件包是否应当在任何非全局区域中可见。
SUNW_PKG_HOLLOW 软件包参数有两个允许的值 true 或 false。
如果未设置 SUNW_PKG_HOLLOW 或将其设置为除 true 或 false 以外的值,则会使用值 false。
如果 SUNW_PKG_ALLZONES 设置为 false,则会忽略 SUNW_PKG_HOLLOW 参数。
如果 SUNW_PKG_ALLZONES 设置为 false,则 SUNW_PKG_HOLLOW 不能设置为 true。
下表描述了 SUNW_PKG_HOLLOW 软件包的参数值。
表 25–3 SUNW_PKG_HOLLOW 软件包参数值
SUNW_PKG_THISZONE 软件包参数定义了是否必须将软件包仅安装在当前区域(全局或非全局区域)中。SUNW_PKG_THISZONE 软件包参数有两个允许的值。这些值为 true 和 false。缺省值为 false。
下表描述了 SUNW_PKG_THISZONE 软件包的参数值。
表 25–4 SUNW_PKG_THISZONE 软件包参数值
pkginfo(1) 手册页中所述的 pkginfo 实用程序支持查询安装了区域的 Solaris 系统上的软件包数据库。有关该数据库的信息,请参见产品数据库。
可以在全局区域中使用 pkginfo 实用程序来查询仅位于全局区域中的软件包数据库。可以在非全局区域中使用 pkginfo 实用程序来查询仅位于非全局区域中的软件包数据库。
修补程序信息:
标识,即修补程序版本和修补程序 ID
适用性,即操作系统类型、操作系统版本和体系结构
相关性,如需要的兼容性和需要卸载的其他包
属性,如需要随后重新引导
要修补的一个或多个软件包,其中每个软件包包含以下内容:
可应用修补程序的软件包的版本
修补程序信息,如 ID、需要卸载的其他包和需要的兼容性
要修补的一个或多个软件包组件
使用 patchadd 命令应用修补程序时,修补程序信息用于确定该修补程序是否适用于当前正在运行的系统。如果确定不适用,则不应用该修补程序。还会针对系统上的所有区域检查修补程序的相关性。如果不满足任一所需的相关性,则不应用该修补程序。这可能包括已安装更高版本的修补程序的情况。
修补程序所包含的每个软件包都会进行检查。如果任何区域中都没有安装软件包,则会跳过软件包,不对其进行修补。
如果满足所有相关性,则会使用任何区域中安装的修补程序内的所有软件包来修补系统。软件包和修补程序数据库也会进行更新。
Solaris 10 3/05 至 Solaris 10 11/06:如果软件包是使用 pkgadd -G 安装的,或者其 pkginfo 设置为 SUNW_PKG_THISZONE=true,则只能使用 patchadd -G 修补该软件包。Solaris 8/07 发行版中已取消此限制。
从修补程序 119254-41 和 119255-41 开始,对 patchadd 和 patchrm 修补程序安装实用程序进行了修改,从而改变了某些修补程序提供功能的处理方式。此修改将影响上述修补程序在任何 Solaris 10 发行版上的安装。这些延迟激活的修补程序能够更好地处理功能修补程序(例如与 Solaris 10 3/05 发行版之后的 Solaris 10 发行版相关联的内核修补程序)中提供的大范围更改。
延迟激活的修补使用回送文件系统 (loopback file system, lofs) 来确保正在运行的系统的稳定性。将修补程序应用于正在运行的系统时,lofs 可以保持修补过程中的稳定性。这些较大的内核修补程序始终需要重新引导,但现在所需的重新引导将激活 lofs 所做的更改。修补程序 README 提供了有关哪些修补程序需要重新引导的说明。
如果正在运行非全局区域或已禁用 lofs,请在安装或删除延迟激活的修补程序时考虑以下几点:
要执行此修补程序操作,所有非全局区域都必须处于已停止状态。在应用修补程序之前,必须先停止非全局区域。
延迟激活的修补需要回送文件系统 (loopback file system, lofs)。由于启用 lofs 对 HA-NFS 功能的限制,正在运行 Sun Cluster 3.1 或 Sun Cluster 3.2 的系统很可能已禁用 lofs。因此,在安装延迟激活的修补程序之前,必须通过在 /etc/system 文件中删除或注释掉以下行来重新启用回送文件系统:
exclude:lofs |
然后,重新引导系统并安装修补程序。在完成修补程序的安装操作之后,请在 /etc/system 文件中恢复或取消注释该行。然后,必须重新引导,以恢复正常操作。
使用 Solaris Live Upgrade 管理修补可避免与修补正在运行的系统相关联的问题。Solaris Live Upgrade 可减少与修补相关的停机时间,并且可在发生问题时提供回退功能来遏制风险。当系统仍在生产时,可以修补非活动引导环境;当在新的 BE 中发现问题时,可以引导回退至初始引导环境 (boot environment, BE)。请参见《Oracle Solaris 10 9/10 安装指南:Solaris Live 升级和升级规划》中的“使用软件包或修补程序升级系统”。
区域并行修补是标准 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 倍,最多为系统中的实际非全局区域数量。
举例如下:
联机 CPU 数量为 4
设置是 num_proc=6
如果系统中有超过该数量的非全局区域,则将以并行方式修补前 6 个非全局区域,当进程完成第一组修补时,再修补剩余的非全局区域。
使用 Solaris Live Upgrade 和新的修补程序管理修补可在发生问题时提供回退功能。当系统仍在工作时,可以修补非活动引导环境;当在新的 BE 中发现问题时,可以引导回退至初始引导环境 (boot environment, BE)。
另请参见Solaris 10 10/09:如何以并行方式修补非全局区域。
要快速更新区域的所有软件包,以便这些软件包匹配在主机上新安装的非全局区域中查看的信息,可在修补全局区域时分离这些区域,然后使用 -U 选项重新附加以匹配全局区域的级别。有关更多信息,请参见将附加时更新 (Update on Attach) 用作修补解决方案。
在全局区域级别上应用的所有修补程序会在所有区域中应用。安装非全局区域后,该区域与全局区域处于同一修补程序级别。修补全局区域时,会对所有非全局区域进行类似的修补。此操作保持所有区域中的修补程序级别相同。
使用 patchadd(1M) 手册页中所述的 patchadd 系统实用程序,可以在安装了区域的系统上添加修补程序。
要向全局区域和所有非全局区域中添加修补程序,请以全局管理员身份在全局区域中运行 patchadd。
在全局区域中使用 patchadd 时,将应用以下条件:
patchadd 实用程序可以将一个或多个修补程序仅添加到全局区域和所有非全局区域中。这是缺省操作。
patchadd 实用程序不能将修补程序仅添加到全局区域中,也不能将其添加到部分非全局区域中。
在向全局区域和所有非全局区域中添加修补程序时,不必考虑该修补程序是否会影响从全局区域共享的区域。
patchadd 实用程序会执行以下步骤:
将修补程序添加到全局区域中。
更新全局区域中的修补程序数据库。
将修补程序添加到每个非全局区域中。
更新每个非全局区域中的修补程序数据库。
当区域管理员在某个非全局区域中使用 patchadd 时,此实用程序仅能将修补程序添加到该区域中。在以下情况下,可将修补程序添加到非全局区域中:
该修补程序不影响该区域中从全局区域共享的任何区域。
该修补程序中的所有软件包都设置为 SUNW_PKG_ALLZONES=false。
patchadd 实用程序会执行以下步骤:
将修补程序添加到区域中。
更新区域中的修补程序数据库。
以下列表指定在全局和非全局区域中添加修补程序时 -G 选项和 SUNW_PKG_ALLZONES 变量之间的交互。
如果任意软件包具有 SUNW_PKG_ALLZONES=TRUE 设置,则将产生错误且不执行任何操作。
如果任何软件包都不具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序仅应用于全局区域中的软件包。
如果任意软件包具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序将应用于所有区域中的相应软件包。
如果任意软件包不具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序将应用于所有相应区域中的这些软件包。仅用于全局区域的软件包将只在全局区域中安装。
如果任意软件包具有 SUNW_PKG_ALLZONES=TRUE 设置,则将产生错误且不执行任何操作。
如果任何软件包都不具有 SUNW_PKG_ALLZONES=TRUE 设置,则修补程序仅应用于非全局区域中的软件包。
使用 patchrm(1M) 手册页中所述的 patchrm 系统实用程序,可以在安装了区域的系统上删除修补程序。
您可以在全局区域中以全局管理员身份使用 patchrm 实用程序来删除修补程序。patchrm 实用程序不能仅从全局区域中删除修补程序,也不能从部分非全局区域中删除它们。
您可以在非全局区域中以区域管理员身份使用 patchrm 实用程序仅从该非全局区域中删除修补程序。修补程序不能影响共享的区域。
每个区域各自的软件包、修补程序和产品注册表数据库都详细介绍了区域中可用的所有已安装软件。安装附加软件或修补程序时要执行所有相关性检查,但不会访问其他任何区域的数据库,除非正在全局区域和一个或多个非全局区域中安装或删除软件包或修补程序。在这种情况下,必须访问相应的非全局区域数据库。
有关数据库的更多信息,请参见 pkgadm(1M) 手册页。