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

第 26 章 在安装了区域的 Solaris 系统上添加和删除软件包和修补程序(任务)

Solaris 10 1/06: 在此发行版中,对本章进行了彻底修订。本章介绍安装了非全局区域的系统上的最新软件包和修补程序过程。

Solaris 10 6/06:如何仅将软件包添加到全局区域过程中添加了一条注释。

Solaris 10 8/07:如何仅将修补程序应用于全局区域任务中删除了一条注释。

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

本章介绍如何在安装了区域的系统上添加和删除软件包和修补程序,还介绍了与管理软件包和修补程序关联的其他任务(例如,检查软件包参数设置和获取软件包信息)。有关安装了区域的系统上的修补和打包概念的概述,请参见第 25 章

在安装了区域的 Solaris 系统上添加和删除软件包和修补程序(任务图)

任务 

说明 

参考 

添加软件包。 

在安装了区域的系统上添加软件包。 

在安装了区域的 Solaris 系统上添加软件包

检查软件包信息。 

在安装了区域的系统上检查软件包信息。 

在安装了区域的 Solaris 系统上检查软件包信息

删除软件包。 

在安装了区域的系统上删除软件包。 

从安装了区域的 Solaris 系统中删除软件包

应用修补程序。 

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

将修补程序应用于安装了区域的 Solaris 系统

删除修补程序。 

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

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

(可选)检查软件包参数设置。 

当添加或删除软件包时,检验软件包参数的设置是否支持您要执行的操作。 

在安装了区域的系统上检查软件包参数设置

在安装了区域的 Solaris 系统上添加软件包

您可以使用 pkgadd(1M) 手册页中所述的 pkgadd 系统实用程序执行以下任务:

要添加软件包,SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW 软件包参数设置必须匹配正确的值(truefalse)。否则,不会获得所需的结果。有关这些软件包参数设置的影响的更多信息,请参见关于软件包和区域。有关如何检查这些软件包参数设置的更多信息,请参见在安装了区域的系统上检查软件包参数设置

Procedure如何仅将软件包添加到全局区域

要仅将软件包添加到全局区域,必须将 SUNW_PKG_ALLZONES 软件包参数设置为 false

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 在全局区域中,运行后跟软件包位置、-G 选项以及软件包名称的 pkgadd -d 命令。

    • 如果从 CD-ROM 安装软件包,请键入:


      global# pkgadd -d /cdrom/cdrom0/directory -G package_name
      
    • 如果从已将软件包复制到其中的某个目录安装软件包,请键入:


      global# pkgadd -d disk1/image -G package_name
      

      其中,disk1 为软件包的复制位置。


    注 –

    如果在没有 -G 选项和 SUNW_PKG_THISZONE=true 的情况下运行 pkgadd 实用程序,则缺省情况下会将指定的软件包添加到当前(全局)区域。


Procedure如何将软件包添加到全局区域和所有非全局区域

请不要在此过程中使用 pkgadd 选项 -G

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 在全局区域中,运行后跟软件包位置和软件包名称的 pkgadd -d 命令。

    • 如果从 CD-ROM 安装软件包,请键入:


      global# pkgadd -d /cdrom/cdrom0/directory package_name
      
    • 如果从已将软件包复制到其中的某个目录安装软件包,请键入:


      global# pkgadd -d disk1/image package_name
      

      其中,disk1 为软件包的复制位置。

Procedure如何将已安装在全局区域中的软件包添加到所有非全局区域

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

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

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

Procedure如何仅将软件包添加到指定的非全局区域

要仅将软件包添加到指定的非全局区域,必须将 SUNW_PKG_ALLZONES 软件包参数设置为 false。请不要在此过程中使用 pkgadd 选项 -G,否则操作会失败。

要执行此过程,您必须是非全局区域中的区域管理员。

  1. 以区域管理员的身份登录到非全局区域。

  2. 在非全局区域(此过程中为 my-zone)中,运行后跟软件包位置和软件包名称的 pkgadd -d 命令。

    • 如果从 CD-ROM 安装软件包,请键入:


      my-zone# pkgadd -d /cdrom/cdrom0/directory package_name
      
    • 如果从已将软件包复制到其中的某个目录安装软件包,请键入:


      my-zone# pkgadd -d disk1/image package_name
      

      其中,disk1 为软件包的复制位置。

在安装了区域的 Solaris 系统上检查软件包信息

您可以使用 pkginfo 命令,查询全局区域和非全局区域的软件包数据库。有关此命令的更多信息,请参见 pkginfo(1) 手册页。

Procedure如何仅在全局区域中检查软件包信息

  1. 要仅检查全局区域的软件包数据库,请使用后跟软件包名称的 pkginfo


    global% pkginfo package_name
    

示例 26–1 在全局区域中使用 pkginfo 命令


global% pkginfo SUNWcsr SUNWcsu
system      SUNWcsr Core Solaris, (Root)
system      SUNWcsu Core Solaris, (Usr)

Procedure如何仅在指定的非全局区域中检查软件包信息

  1. 要在特定的非全局区域中检查软件包数据库,请登录到该非全局区域,并使用后跟软件包名称的 pkginfo


    my-zone% pkginfo package_name
    

示例 26–2 在非全局区域中使用 pkginfo 命令


my-zone% pkginfo SUNWcsr SUNWcsu
system      SUNWcsr Core Solaris, (Root)
system      SUNWcsu Core Solaris, (Usr)

从安装了区域的 Solaris 系统中删除软件包

您可以使用 pkgrm(1M) 手册页中所述的 pkgrm 系统实用程序执行以下任务:

要删除软件包,SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW 软件包参数设置必须匹配正确的值(truefalse)。否则,不会获得所需的结果。有关这些软件包参数设置的影响的更多信息,请参见关于软件包和区域。有关如何检查这些软件包参数设置的更多信息,请参见在安装了区域的系统上检查软件包参数设置

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

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 在全局区域中,运行后跟软件包名称的 pkgrm 命令。


    global# pkgrm package_name
    

Procedure如何仅从指定的非全局区域中删除软件包

要仅从指定的非全局区域中删除软件包,必须将 SUNW_PKG_ALLZONES 软件包参数设置为 false

要执行此过程,您必须是非全局区域中的区域管理员。

  1. 以区域管理员的身份登录到非全局区域。

  2. 在非全局区域(此过程中为 my-zone)中,运行后跟软件包名称的 pkgrm 命令。


    my-zone# pkgrm package_name
    

将修补程序应用于安装了区域的 Solaris 系统

您可以使用 patchadd(1M) 手册页中所述的 patchadd 系统实用程序执行以下任务:

Procedure如何仅将修补程序应用于全局区域


注 –

Solaris 10 3/05 至 Solaris 10 11/06:如果要修补使用带有 -G 选项的 pkgadd 命令添加的软件包,则必须使用带有 -G 选项的 patchadd 命令修补该软件包。Solaris 8/07 发行版中已取消此限制。


要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 执行后跟 -G 选项和修补程序 ID 的 patchadd 命令。


    global# patchadd -G patch_id
    

Procedure如何将修补程序应用于全局区域和所有非全局区域

要执行此过程,您必须是全局区域中的全局管理员。

另请参见Solaris 10 10/09:可减少修补时间的区域并行修补Solaris 10 10/09:如何以并行方式修补非全局区域

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 执行后跟修补程序 ID 的 patchadd 命令。


    global# patchadd patch_id
    

Procedure如何仅将修补程序应用于指定的非全局区域

要仅将修补程序应用于指定的非全局区域,必须将修补程序集中所有软件包的 SUNW_PKG_ALLZONES 软件包参数设置为 false

要执行此过程,您必须是非全局区域中的区域管理员。

  1. 以区域管理员的身份登录到非全局区域。

  2. 在非全局区域(此过程中为 my-zone)中,执行后跟修补程序 ID 的 patchadd 命令。


    my-zone# patchadd patch_id
    

ProcedureSolaris 10 10/09:如何以并行方式修补非全局区域

patchadd 的配置文件 /etc/patch/pdo.conf 中设置要以并行方式修补的非全局区域的数量。当完成全局区域的修补后,将按 num_proc= 中设置的非全局区域数量对非全局区域一起进行修补。

如果运行的是 Solaris 10 10/09 之前的发行版,请下载修补程序 119254-66 或更高修订版 (SPARC) 或者 119255-66 或更高修订版 (x86)。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. (可选,仅适用于 Solaris 10 10/09 之前的发行版)下载修补程序 119254-66 (SPARC) 或 119255-66 (x86)。

  3. /etc/patch/pdo.conf 文件中,对具有 4 个联机 CPU 的系统设置 6 个以并行方式一起修补的非全局区域。


    num_proc=6

    如果系统中的非全局区域多于六个,则将以并行方式修补前六个非全局区域,当进程完成对前六个非全局区域的修补后,再修补剩余的非全局区域。

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

您可以使用 patchrm(1M) 手册页中所述的 patchrm 系统实用程序执行以下任务:

Procedure如何从全局区域和所有非全局区域中删除修补程序

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 执行后跟修补程序 ID 的 patchrm 命令。


    global# patchrm patch_id
    

Procedure如何仅从指定的非全局区域中删除修补程序

要仅从指定的非全局区域中删除修补程序,必须将修补程序集中所有软件包的 SUNW_PKG_ALLZONES 软件包参数设置为 false

要执行此过程,您必须是非全局区域中的区域管理员。

  1. 以区域管理员的身份登录到非全局区域。

  2. 在非全局区域(此过程中为 my-zone)中,执行后跟修补程序 ID 的 patchrm 命令。


    my-zone# patchrm patch_id
    

在安装了区域的系统上检查软件包参数设置

在添加或删除软件包之前,您可以使用 pkgparam 命令来检查软件包参数设置。此步骤是可选的。在解决无法按预期方式添加或删除软件包的问题时,也可以执行此检查。有关显示软件包参数值的信息,请参见 pkgparam(1) 手册页。

Procedure(可选)如何检查系统上已安装的软件包的设置

  1. 要检查已安装在全局区域或非全局区域中的软件包的软件包参数设置,请使用后跟软件包名称和参数名称的 pkgparam


    my-zone% pkgparam package_name SUNW_PKG_ALLZONES
    true
    my-zone% pkgparam package_name SUNW_PKG_HOLLOW
    false

Procedure(可选)如何检查 CD-ROM 上软件中软件包的设置

  1. 要检查 CD-ROM 上软件中未安装软件包的参数设置,请使用后跟 CD-ROM 路径、软件包名称以及参数名称的 pkgparam -d


    my-zone% pkgparam -d /cdrom/cdrom0/directory package_name SUNW_PKG_ALLZONES
    true
    my-zone% pkgparam -d /cdrom/cdrom0/directory package_name SUNW_PKG_HOLLOW 
    false