第 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 系统上添加软件包
您可以使用 pkgadd(1M) 手册页中所述的 pkgadd 系统实用程序执行以下任务:
-
仅将软件包添加到全局区域
-
将软件包添加到全局区域和所有非全局区域
-
将已安装在全局区域中的软件包添加到非全局区域
-
仅将软件包添加到指定的非全局区域
要添加软件包,SUNW_PKG_ALLZONES 和 SUNW_PKG_HOLLOW 软件包参数设置必须匹配正确的值(true 或 false)。否则,不会获得所需的结果。有关这些软件包参数设置的影响的更多信息,请参见关于软件包和区域。有关如何检查这些软件包参数设置的更多信息,请参见在安装了区域的系统上检查软件包参数设置。
如何仅将软件包添加到全局区域
要仅将软件包添加到全局区域,必须将 SUNW_PKG_ALLZONES 软件包参数设置为 false。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
在全局区域中,运行后跟软件包位置、-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 实用程序,则缺省情况下会将指定的软件包添加到当前(全局)区域。
如何将软件包添加到全局区域和所有非全局区域
请不要在此过程中使用 pkgadd 选项 -G。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
在全局区域中,运行后跟软件包位置和软件包名称的 pkgadd -d 命令。
-
如果从 CD-ROM 安装软件包,请键入:
global# pkgadd -d /cdrom/cdrom0/directory package_name
-
如果从已将软件包复制到其中的某个目录安装软件包,请键入:
global# pkgadd -d disk1/image package_name
其中,disk1 为软件包的复制位置。
如何将已安装在全局区域中的软件包添加到所有非全局区域
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
在全局区域中,使用 pkgrm 删除软件包。
在不使用 -G 选项的情况下添加软件包。
如何仅将软件包添加到指定的非全局区域
要仅将软件包添加到指定的非全局区域,必须将 SUNW_PKG_ALLZONES 软件包参数设置为 false。请不要在此过程中使用 pkgadd 选项 -G,否则操作会失败。
要执行此过程,您必须是非全局区域中的区域管理员。
以区域管理员的身份登录到非全局区域。
在非全局区域(此过程中为 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) 手册页。
如何仅在全局区域中检查软件包信息
要仅检查全局区域的软件包数据库,请使用后跟软件包名称的 pkginfo。
global% pkginfo package_name |
示例 26–1 在全局区域中使用 pkginfo 命令
global% pkginfo SUNWcsr SUNWcsu system SUNWcsr Core Solaris, (Root) system SUNWcsu Core Solaris, (Usr) |
如何仅在指定的非全局区域中检查软件包信息
要在特定的非全局区域中检查软件包数据库,请登录到该非全局区域,并使用后跟软件包名称的 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_ALLZONES 和 SUNW_PKG_HOLLOW 软件包参数设置必须匹配正确的值(true 或 false)。否则,不会获得所需的结果。有关这些软件包参数设置的影响的更多信息,请参见关于软件包和区域。有关如何检查这些软件包参数设置的更多信息,请参见在安装了区域的系统上检查软件包参数设置。
如何从全局区域和所有非全局区域中删除软件包
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
在全局区域中,运行后跟软件包名称的 pkgrm 命令。
global# pkgrm package_name |
如何仅从指定的非全局区域中删除软件包
要仅从指定的非全局区域中删除软件包,必须将 SUNW_PKG_ALLZONES 软件包参数设置为 false。
要执行此过程,您必须是非全局区域中的区域管理员。
以区域管理员的身份登录到非全局区域。
在非全局区域(此过程中为 my-zone)中,运行后跟软件包名称的 pkgrm 命令。
my-zone# pkgrm package_name |
将修补程序应用于安装了区域的 Solaris 系统
您可以使用 patchadd(1M) 手册页中所述的 patchadd 系统实用程序执行以下任务:
-
仅将修补程序应用于全局区域
-
将修补程序应用于全局区域和所有非全局区域
-
仅将修补程序应用于指定的非全局区域
如何仅将修补程序应用于全局区域
注 –
Solaris 10 3/05 至 Solaris 10 11/06:如果要修补使用带有 -G 选项的 pkgadd 命令添加的软件包,则必须使用带有 -G 选项的 patchadd命令修补该软件包。Solaris 8/07 发行版中已取消此限制。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
执行后跟 -G 选项和修补程序 ID 的 patchadd 命令。
global# patchadd -G patch_id |
如何将修补程序应用于全局区域和所有非全局区域
要执行此过程,您必须是全局区域中的全局管理员。
另请参见Solaris 10 10/09:可减少修补时间的区域并行修补和Solaris 10 10/09:如何以并行方式修补非全局区域。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
执行后跟修补程序 ID 的 patchadd 命令。
global# patchadd patch_id |
如何仅将修补程序应用于指定的非全局区域
要仅将修补程序应用于指定的非全局区域,必须将修补程序集中所有软件包的 SUNW_PKG_ALLZONES 软件包参数设置为 false。
要执行此过程,您必须是非全局区域中的区域管理员。
以区域管理员的身份登录到非全局区域。
在非全局区域(此过程中为 my-zone)中,执行后跟修补程序 ID 的 patchadd 命令。
my-zone# patchadd patch_id |
Solaris 10 10/09:如何以并行方式修补非全局区域
在 patchadd 的配置文件 /etc/patch/pdo.conf 中设置要以并行方式修补的非全局区域的数量。当完成全局区域的修补后,将按num_proc= 中设置的非全局区域数量对非全局区域一起进行修补。
如果运行的是 Solaris 10 10/09 之前的发行版,请下载修补程序 119254-66 或更高修订版 (SPARC) 或者 119255-66 或更高修订版 (x86)。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
(可选,仅适用于 Solaris 10 10/09 之前的发行版)下载修补程序 119254-66 (SPARC) 或 119255-66 (x86)。
在 /etc/patch/pdo.conf 文件中,对具有 4 个联机 CPU 的系统设置 6 个以并行方式一起修补的非全局区域。
num_proc=6 |
如果系统中的非全局区域多于六个,则将以并行方式修补前六个非全局区域,当进程完成对前六个非全局区域的修补后,再修补剩余的非全局区域。
在安装了区域的系统上删除修补程序
您可以使用 patchrm(1M) 手册页中所述的 patchrm 系统实用程序执行以下任务:
-
从全局区域和所有非全局区域中删除修补程序
-
仅从指定的非全局区域中删除修补程序
如何从全局区域和所有非全局区域中删除修补程序
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
执行后跟修补程序 ID 的 patchrm 命令。
global# patchrm patch_id |
如何仅从指定的非全局区域中删除修补程序
要仅从指定的非全局区域中删除修补程序,必须将修补程序集中所有软件包的 SUNW_PKG_ALLZONES 软件包参数设置为 false。
要执行此过程,您必须是非全局区域中的区域管理员。
以区域管理员的身份登录到非全局区域。
在非全局区域(此过程中为 my-zone)中,执行后跟修补程序 ID 的 patchrm 命令。
my-zone# patchrm patch_id |
在安装了区域的系统上检查软件包参数设置
在添加或删除软件包之前,您可以使用 pkgparam 命令来检查软件包参数设置。此步骤是可选的。在解决无法按预期方式添加或删除软件包的问题时,也可以执行此检查。有关显示软件包参数值的信息,请参见 pkgparam(1) 手册页。
(可选)如何检查系统上已安装的软件包的设置
要检查已安装在全局区域或非全局区域中的软件包的软件包参数设置,请使用后跟软件包名称和参数名称的 pkgparam。
my-zone% pkgparam package_name SUNW_PKG_ALLZONES true my-zone% pkgparam package_name SUNW_PKG_HOLLOW false |
(可选)如何检查 CD-ROM 上软件中软件包的设置
要检查 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 |