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

软件包参数信息

设置区域的软件包参数

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 时出现的行为相同。