系统管理指南:基本管理 第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务)
第2 1 章
409
注– 从该Solaris 发行版开始,并非所有Sun 修补程序都可通过Sun PatchManager 获取。
这类修补程序包括不符合PatchPro 标准的那些修补程序,以及具有第三方合同限制的
那些修补程序。
PatchManager 功能
PatchManager 具有以下功能:
■ PatchPro 分析引擎
■ 本地模式的命令行界面
■ 修补程序列表操作
注– Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功能,而
且还具有一些新增功能和增强功能。如果运行的是Solaris 10 初始发行版,并且希望使
用Sun Update Connection,请安装适当的修补程序或将系统升级到Solaris 10 1/06 发行
版。
有关安装和使用Sun Update Connection, System Edition 软件的信息,请参见位于
http://docs.sun.com/app/docs/coll/1320.1 中的产品文档。
PatchPro 分析引擎
PatchManager 引入了PatchPro 功能,可自动执行修补程序管理进程。此进程包括在系
统上执行修补程序分析,然后下载并应用所需的修补程序。此自动功能以前是作为单
独的PatchPro 产品为Solaris 2.6、Solaris 7、Solaris 8 和Solaris 9 提供的,现在则是标准
Solaris 10 发行版的一部分。
PatchPro 使用签名的修补程序,通过确保未对Solaris 修补程序进行修改来提高这些修
补程序的安全性。
注– Sun PatchManager 2.0 包括用于转换的pprosetup 和pprosvc 命令。最好不要使用这
些命令,而应改用smpatch 命令。
本地模式的命令行界面
注– 在Solaris 8 系统上,仅能在本地模式下运行smpatch。
PatchManager 功能
410 系统管理指南:基本管理• 2006 年7 月
从Solaris 9 开始,smpatch 命令可以在两种模式下使用:本地模式和远程模式。本地模
式仅能在本地系统上运行。系统处于单用户模式或多用户模式下时,均可运行此模
式。远程模式可用于针对远程系统执行任务。具有适当授权的用户或角色均可使用本
地模式和远程模式。
缺省情况下,系统会运行本地模式。在本地模式下,系统不会使用SolarisWBEM服
务,并且验证选项或引用远程系统的那些选项均不可用。smpatch 命令在本地模式下的
运行速度比在远程模式下更快。
如果指定任何远程选项或验证选项(-L 除外),则系统将使用远程模式。
本地模式下的单用户模式操作
当系统处于单用户模式下时,可以在本地模式下使用smpatch add 命令应用修补程序。
当修补程序与singleuser 修补程序属性关联时,或要将所有修补程序应用于静默系统
时,请采用此方式应用修补程序。
当系统在单用户模式下运行时,应仅使用smpatch add、smpatch order 和smpatch
remove 命令管理修补程序。
当系统在单用户模式下运行时,可以使用smpatch get、smpatch set 和smpatch unset
命令配置修补程序管理环境。
当系统在单用户模式下运行时,请勿使用smpatch analyze、smpatch download 和
smpatch update 命令。这些命令取决于系统处于单用户模式下时不可用的网络服务。
如果以前使用smpatch update 命令更新带有修补程序的系统,则某些修补程序可能未
被应用。如果这类修补程序不符合修补程序应用策略,则不能进行应用,必须在单用
户模式下手动应用这类修补程序。
要在系统处于单用户模式下时应用修补程序,请使用带有-x idlist= 选项的smpatch
add 命令指定要应用的修补程序的列表。
可以使用disallowed_patch_list 文件作为smpatch add 命令的输入来应用singleuser
修补程序。此文件(存储在下载目录中)列出了在系统处于多用户模式下时无法通过
smpatch update 应用的任何修补程序。例如:
# smpatch
add -x idlist=/var/sadm/spool/disallowed_patch_list
修补程序列表操作
PatchManager 可以创建一个有序的修补程序列表,您可以将这些修补程序保存到文本
文件中并使用其执行修补程序操作。
PatchManager 功能
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 411
可以使用修补程序列表将同一组修补程序应用于具有相同硬件和软件配置的系统。或
者,可以创建一个包含所有相关安全修补程序的修补程序列表文件,并使用修补程序
列表将这些安全修补程序应用于一个或多个系统。
您可以采用以下任何一种方式使用smpatch 命令来创建一个包含有序修补程序列表的文
件:
■ 执行系统分析-使用smpatch analyze 命令分析系统,生成一个有序的修补程序列
表并将其写入文件。可以编辑此文件,以删除不需要的修补程序。
■ 提供特定的修补程序列表-根据为特定系统指定的修补程序集,使用smpatch
analyze 命令生成有序的修补程序列表。通过向列表中增加与其相关的修补程序,
可以对修补程序列表进行解析。
■ 指向系统中存储的修补程序集合-根据系统中存储的修补程序的集合,使用
smpatch order 命令生成有序的修补程序列表。
如果修改修补程序列表且修补程序在系统中可用,请使用smpatch order 命令按照适合
应用修补程序的顺序放置列表。否则,请使用smpatch analyze 命令,该命令也会生成
有序的修补程序列表。
可以使用修补程序列表作为smpatch add、smpatch analyze、smpatch download、
smpatch order 和smpatch update 命令的输入。
注意– smpatch add 命令尝试应用修补程序列表中的所有修补程序,无论修补程序和修
补程序相关性的应用策略如何。
Sun Patch Manager 概念
Sun PatchManager 是用于管理Solaris 系统上的修补程序的工具之一。
注– 有关用于管理该Solaris 发行版中的修补程序和更新的新工具信息,请参见第311 页
中的“Solaris 操作系统中软件管理方面的新增功能”。
PatchManager 主要对签名的修补程序进行操作,包括来自SunMicrosystems 的数字签
名。与未签名的修补程序(即不带数字签名的修补程序)相比,已签名的修补程序安
全性更高。将修补程序应用于系统之前,系统会验证修补程序的数字签名。有效的数
字签名可确保自应用签名以来尚未对应用的已签名修补程序进行修改。可以使用
smpatch add 命令应用未签名的修补程序。
修补程序管理进程
通过PatchManager,可以手动或自动执行修补程序管理进程,其中包括以下任务:
Sun PatchManager 概念
412 系统管理指南:基本管理• 2006 年7 月
■ 其中包括自动分析系统以确定适当的修补程序,下载修补程序并将修补程序应用于
系统等
■ 分析系统以获取适当修补程序的列表
■ 将适当的修补程序下载到系统
■ 将适当的修补程序应用于系统
■ 为系统配置修补程序管理环境
■ 优化系统的修补程序管理环境
■ 从系统中删除修补程序
有关使用Solaris 修补程序的建议策略和做法的信息,请转至《Solaris Patch
Management: Recommended Strategies》。
使用修补程序自动更新系统
PatchManager 可自动将一组适当的修补程序应用于系统。更新在修补程序管理进程中
执行以下步骤:
■ 分析系统以确定哪些修补程序适用
■ 将这些修补程序下载到系统
■ 仅应用符合修补程序应用策略的修补程序
成功应用修补程序后,从下载目录中删除已下载的修补程序。
修补程序根据指定的策略以及与下载的修补程序关联的修补程序属性应用于系统。
如果某个修补程序不符合修补程序应用策略,则不会应用该修补程序,而会将该修补
程序的修补程序项写入下载目录中的disallowed_patch_list 文件。此时,Sun Patch
Manager 会继续尝试应用其他修补程序。之后,可以转至下载目录并使用smpatch add
命令手动应用此文件中列出的所有禁止的修补程序。对于设置了interactive 属性的所
有修补程序,请遵照修补程序的自述文件中的说明来应用它们。
例如,可以将系统引导至单用户模式,并通过键入以下命令来应用
disallowed_patch_list 文件中列出的修补程序:
# smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list
您可以使用smpatch 命令手动执行分析、下载和应用等任务,而不是执行更新。这些任
务将在以下各节中进行介绍。
分析系统
将修补程序应用于系统之前,可以确定需要哪些修补程序。可以使用PatchManager 执
行系统的修补程序分析,以获取适当修补程序的列表。
PatchManager 使用修补程序源(缺省情况下是SunSolve Online Web 站点)中的分析模
块和可用修补程序的列表执行Solaris 系统分析。有关修补程序源的信息,请参见第415
页中的“指定修补程序源”。
Sun PatchManager 概念
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 413
根据分析结果,可以下载修补程序并将其应用于系统。
有时,一个修补程序取决于另一个修补程序,也即是说,第一个修补程序只能在应用
另一个修补程序之后才能应用于系统。此时会说第一个修补程序与第二个修补程序之
间具有相关性。PatchManager 分析系统时,将检查修补程序相关性并将所有的修补程
序自动纳入生成的列表中。如果根据特定修补程序请求系统分析,PatchManager 将在
列表中添加解析修补程序相关性所需的所有修补程序。
注– 通过分析生成的修补程序列表基于Sun 修补程序服务器中所有可用的修补程序。有
关主机系统或其网络配置的明确信息不会传输到Sun。仅会传输对Sun 修补程序集的请
求。系统将扫描修补程序集以找到适合该主机系统的修补程序,显示结果,然后有选
择性地下载这些修补程序。
将修补程序下载到系统
将修补程序应用于系统之前,必须先从Sun 修补程序服务器将所需的修补程序下载到
该系统。
可以根据系统分析从Sun 修补程序服务器下载修补程序,也可以指定要下载的特定修
补程序。
将修补程序应用于系统
PatchManager 可以将修补程序应用于系统。
如果使用smpatch add 命令应用特定的修补程序,则该命令仅会尝试应用已指定的那些
修补程序。smpatch add 命令不会尝试解析修补程序的相关性。如果要应用缺少相关性
的修补程序,则不会应用该修补程序。可以使用smpatch analyze 命令或smpatch
update 命令解析修补程序的相关性。
从系统中删除修补程序
您可能希望删除(或卸载)以前应用于系统的修补程序。通过PatchManager,可以删
除修补程序。
删除修补程序时,Solaris 修补程序工具会恢复已通过该修补程序修改的所有文件,除
非以下所有条件都成立:
■ 已通过patchadd -d 命令应用了该修补程序,该命令指示patchadd 不要保存正在更
新或替换的文件副本。
■ 已通过不带-d 选项的patchadd 命令应用了该修补程序,并且删除了生成的卸载文
件。
■ 该修补程序已被更高版本的修补程序废弃。
■ 该修补程序是另一个修补程序所必需的。
Solaris 修补程序工具会调用pkgadd 命令恢复最初应用修补程序时保存的软件包。
Sun PatchManager 概念
414 系统管理指南:基本管理• 2006 年7 月
在修补程序删除过程中,patchrm 命令会在/tmp/backoutlog.process-id 文件中记录卸载
过程。如果成功删除该修补程序,则系统会自动删除此日志文件。
请注意,使用smpatch remove 命令时一次仅能删除一个修补程序。
注– 如果尝试删除与其他修补程序相关的修补程序,则该修补程序不会被删除。如果删
除了与该修补程序相关的所有修补程序,则可以删除该修补程序。
指定修补程序源
使用PatchManager 时,客户机系统必须对Solaris 修补程序和修补程序数据具有访问权
限。客户机系统和本地修补程序服务器都可从以下源中获取修补程序:
■ 修补程序服务器-为Solaris 修补程序和修补程序数据提供访问的服务器。
■ 本地修补程序集合-存储在本地系统的可用目录中的修补程序和修补程序数据的集
合。这类目录可以是本地目录、共享的网络目录或本地系统上挂载的CD。
客户机系统的缺省修补程序源为Sun 修补程序服务器。因此,必须直接或通过Web 代
理将从Sun 修补程序服务器获取修补程序的任何客户机系统连接至Internet。
可以使用不同修补程序源的组合来配置这些修补程序管理环境。
客户机从以下源访问修补程序和修补程序数据:
■ Sun 修补程序服务器-客户机系统从Sun 修补程序服务器获取修补程序。
此配置要求直接或通过Web 代理将客户机系统连接至Internet。
■ 本地修补程序集合-客户机系统从本地系统上的修补程序集合获取修补程序和修补
程序数据。
此配置不要求客户机系统连接至Internet。
有关为客户机系统指定修补程序源的说明,请参见或第423 页中的“如何指定修补程序
源(命令行)”。
自定义修补程序应用策略
通过PatchManager,可以自定义更新系统时使用的修补程序应用策略。该策略可确定
在更新操作期间可应用的修补程序类型。
Solaris 修补程序分为标准或非标准两类。在多用户模式下运行时,可将标准修补程序
应用于Solaris 系统。此时不需要重新引导。这类修补程序与standard 修补程序属性关
联。
非标准修补程序具有以下特征之一:
Sun PatchManager 概念
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 415
■ 该修补程序与rebootafter、rebootimmediate、reconfigafter、reconfigimmediate
和singleuser 属性中的一项或多项关联。更新操作期间,可以应用这类非标准修补
程序(如果该策略允许)。
■ 该修补程序与interactive 属性关联。不能使用smpatch update 命令应用这类修补
程序。可以使用smpatch add 命令或patchadd 命令应用这类修补程序。
注– 从该Solaris 发行版开始,并非所有Sun 修补程序都可通过Sun PatchManager 获取。
这类修补程序包括不符合PatchPro 标准的那些修补程序,以及具有第三方合同限制的
那些修补程序。
可以指定更新期间PatchManager 可以应用的修补程序类型。这类修补程序可能包括需
要重新引导的那些修补程序或在系统处于单用户模式下时必须应用的那些修补程序。
有关以下修补程序属性的说明,请参见smpatch(1M) 手册页。
■ interactive
■ rebootafter
■ reconfigafter
■ rebootimmediate
■ reconfigimmediate
■ singleuser
■ standard
设置PatchManager 配置参数
可以使用smpatch 命令设置以下PatchManager 参数。
patchpro.patchset
要使用的修补程序集的名称。缺省名称为patchdb。
patchpro.download.directory
存储下载的修补程序以及从中应用修补程序的目录的路径。缺省位置为
/var/sadm/spool。
patchpro.backout.directory
保存修补程序卸载数据的目录路径。删除修补程序时,系统还会从此目录检索数
据。缺省情况下,卸载数据保存在软件包目录中。
patchpro.patch.source
指向修补程序集合的URL。缺省URL 是指Sun 修补程序服务器的URL,即
https://updateserver.sun.com/solaris/。
patchpro.sun.user
用于获取修补程序的Sun 用户名。通过在http://sunsolve.sun.com 中进行注册,可
以获取此用户名。缺省情况下,系统不允许访问合同修补程序。
Sun PatchManager 概念
416 系统管理指南:基本管理• 2006 年7 月
patchpro.sun.passwd
随Sun 用户名一同使用的口令。未设置缺省口令。如果指定了Sun 用户名,还必须
指定口令。
patchpro.proxy.host
Web 代理的主机名。缺省情况下,不会指定Web 代理,并且假设与Internet 建立直
接连接。
patchpro.proxy.port
Web 代理使用的端口号。缺省情况下,不会指定Web 代理,并且假设与Internet 建
立直接连接。缺省端口为8080。
patchpro.proxy.user
Web 代理进行验证使用的用户名。
patchpro.proxy.passwd
Web 代理进行验证使用的口令。
patchpro.install.types
您的修补程序应用策略。该值是零个或多个用冒号分隔的修补程序属性的列表,允
许通过更新操作(smpatch update) 应用这些属性。
缺省情况下,可以应用具有standard、rebootafter 和reconfigafter 属性的修补程
序。请参见第415 页中的“自定义修补程序应用策略”。
PatchManager 入门
要确定将修补程序下载并应用于系统的最佳方法,请参见第402 页中的“选择修补程
序和更新的最佳应用方法”。
要开始使用PatchManager,请找到以最佳方式描述您的修补程序管理环境的情况。
■ 客户机系统直接连接至Internet。
此时即可使用PatchManager 管理修补程序。请参见第419 页中的“访问Sun Patch
Manager 命令行界面”。
■ 客户机系统通过Web 代理的方式连接至Internet。
必须首先指定Web 代理的主机名和端口。如果需要,还应指定与Web 代理关联的
用户名和口令。请参见第422 页中的“如何指定Web 代理(命令行)”。
更改配置后,请参见第419 页中的“访问Sun PatchManager 命令行界面”。
■ 您需要用户名和口令才能从Sun 修补程序服务器访问修补程序。
如果需要获取用户名和口令,请在http://sunsolve.sun.com 中进行注册。
然后,为运行PatchManager 的每个客户机系统指定用户名和口令。请参见第423 页
中的“如何指定用于获取修补程序的用户名和口令(命令行)”。
更改配置后,请参见第419 页中的“访问Sun PatchManager 命令行界面”。
PatchManager 入门
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 417
Sun Patch Manager 支持的任务
Sun PatchManager 支持以下任务:
■ 对远程系统执行修补程序管理操作
可以在远程模式下使用smpatch 命令对远程系统执行修补程序管理操作。在本地模
式下,smpatch 命令仅能在本地系统上运行。
■ 分析系统以了解修补程序
■ 执行计划的修补程序分析
使用cron 命令运行smpatch analyze 命令。
■ 下载各个修补程序
■ 解析修补程序的相关性
要解析修补程序的相关性,请运行smpatch update 或smpatch analyze -i patch-id。
请注意,如果运行smpatch add,则不会解析修补程序的相关性。
■ 使用修补程序更新系统
■ 在系统处于单用户模式下时运行(仅限于使用smpatch 执行的本地模式操作)。
■ 对修补程序列表执行操作
■ 为系统配置修补程序管理环境
使用Sun Patch Manager 命令行界面管理Solaris 修补程序
(任务图)
下表列出了使用Sun PatchManager smpatch 命令行界面时可能执行的任务。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第311 页中的
“Solaris 操作系统中软件管理方面的新增功能”。
任务说明参考
访问命令行界面。如果要在命令行上执行修补程序管理任
务,请使用smpatch 命令。
第419 页中的“访问Sun
PatchManager 命令行界面
”
使用Sun PatchManager 命令行界面管理Solaris 修补程序(任务图)
418 系统管理指南:基本管理• 2006 年7 月
任务说明参考
为系统配置修补程序管理环
境。
缺省情况下,假设系统直接连接至
Internet,并配置为从Sun 修补程序服务
器获取修补程序。
如果您的系统不是这种情况,请更改配
置设置以匹配您的环境。
第421 页中的“使用命令
行界面配置修补程序管理
环境(任务图)”
管理系统上的修补程序。可以使用命令行界面执行系统分析、应
用一个或多个修补程序、查找修补程序
相关性、对修补程序列表进行排序以及
删除修补程序。
第424 页中的“使用命令
行界面管理修补程序(任
务图)”
(可选)优化系统的修补程
序管理环境。
更改某些可选的配置设置,如修补程序
应用策略。
第433 页中的“使用命令
行界面优化修补程序管理
环境(任务图)”
访问Sun Patch Manager 命令行界面
注意– 由于系统可能变得不稳定,请勿在系统上同时运行PatchManager 操作。请勿在
修补程序操作开始后将其中断。如果修补程序操作正在运行,则必须等待该操作完成
后才能开始其他操作。
可以具有适当授权的用户身份(如超级用户)或通过承担拥有适当配置文件的角色,
来运行本地模式或远程模式的smpatch 命令。
用户必须具有solaris.admin.patchmgr.* 授权才能运行smpatch 命令。
系统管理员配置文件包括相应的配置文件。要创建角色并将该角色分配给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
注– Sun PatchManager 2.0 包括用于转换的pprosetup 和pprosvc 命令。最好不要使用这
些命令,而应改用smpatch 命令。
有关smpatch 命令行选项的更多信息,请参见smpatch(1M) 手册页。
▼ 如何访问Sun Patch Manager 命令行界面(命令行)
缺省情况下,smpatch 命令在本地模式下运行。
决定管理本地系统上的修补程序,还是管理远程系统上的修补程序。
■ 如果要仅管理本地系统上的修补程序,请转至步骤2。
1
访问Sun PatchManager 命令行界面
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 419
■ 如果要管理远程系统上的修补程序,请转至步骤4。
SolarisWBEM服务必须在远程系统上运行。
以具有适当授权的用户身份登录系统,或承担具有适当授权的角色。
请注意,您必须是具有适当授权的用户才能承担适当的角色。请参见《系统管理指南
:安全性服务》中的“配置RBAC”。
运行所需的smpatch 命令。
例如:
$ smpatch analyze
以具有适当授权或允许承担具有适当授权的角色的用户身份登录系统。
运行带有-n 选项的smpatch 命令,以指定要对其进行操作的系统名称。
例如:
$ smpatch analyze -n system-name
要通过承担的角色执行操作,请键入:
$ smpatch analyze -r role-name -n system-name
访问Sun PatchManager 命令行界面
以下示例使用smpatch get 命令,列出了您的修补程序管理环境的配置设置。
本示例说明如何对本地系统运行smpatch 命令。
# smpatch get
本示例说明授权用户如何对称为jupiter 的远程系统运行smpatch 命令。
# smpatch get -n jupiter
本示例说明如何以patcher 角色对称为jupiter 的远程系统运行smpatch 命令。
# smpatch get -r patcher -n jupiter
后续操作
可以使用smpatch 命令为系统配置修补程序管理环境并管理修补程序。请参见以下内容
:
■ 第421 页中的“使用命令行界面配置修补程序管理环境(任务图)”
■ 第424 页中的“使用命令行界面管理修补程序(任务图)”
■ 第433 页中的“使用命令行界面优化修补程序管理环境(任务图)”
2
3
4
5
示例21–1
更多信息
访问Sun PatchManager 命令行界面
420 系统管理指南:基本管理• 2006 年7 月
使用命令行界面配置修补程序管理环境(任务图)
请使用smpatch 命令执行本节中的配置任务。有关可设置的配置参数的列表,请参见
第416 页中的“设置PatchManager 配置参数”和smpatch(1M) 手册页。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第311 页中的
“Solaris 操作系统中软件管理方面的新增功能”。
缺省情况下,修补程序管理环境配置为直接从Sun 修补程序服务器获取修补程序。因
此,如果系统符合以下一项或多项,则必须自定义环境:
■ 通过Web 代理的方式连接至Internet
■ 需要用户名和口令才能获取修补程序
■ 从Sun 修补程序服务器以外的修补程序源获取修补程序
下表列出了为系统配置修补程序管理环境时可能执行的任务。
任务说明参考
指定要使用的Web 代理。如果系统通过Web 代理连接至
Internet,则必须指定用于访问Sun 修补
程序服务器的Web 代理。
缺省情况下,不指定任何Web 代理。
第422 页中的“如何指定
Web 代理(命令行)”
指定为Web 代理提供验证所
需的用户名和口令。
如果Web 代理需要验证,则必须指定验
证所需的Web 代理用户。
缺省情况下,不指定任何Web 代理用
户。
第422 页中的“如何指定
Web 代理(命令行)”
指定从Sun 修补程序服务器获
取修补程序所需的用户名和
口令。
如果需要用户名和口令才能获取修补程
序,则必须指定用户名和口令。
第423 页中的“如何指定
用于获取修补程序的用户
名和口令(命令行)”
指定系统的修补程序源。系统可以从以下源之一获取修补程序:
■ Sun 修补程序服务器
■ 本地修补程序集合
系统的缺省修补程序源为Sun 修补程序
服务器。
第423 页中的“如何指定
修补程序源(命令行)”
使用命令行界面配置修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 421
注– 以下过程和示例说明如何运行本地模式(缺省情况下的运行模式)的smpatch 命
令。要运行远程模式版本,请使用任何验证选项(-L 除外)或远程选项。请参见
smpatch(1M) 手册页。
▼ 如何指定Web 代理(命令行)
如果系统通过Web 代理连接至Internet,则必须为PatchManager 提供有关的Web 代理
的信息。
请从网络管理员处获取Web 代理的主机名和端口。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定Web 代理。
# smpatch set patchpro.proxy.host=web-proxy-server /
patchpro.proxy.port=port
(可选)如果Web 代理需要进行验证,请提供用户名和口令。
请从网络管理员处获取此信息。
a. 指定用于验证的用户名。
# smpatch set patchpro.proxy.user=web-proxy-user
b. 通过使smpatch 提示您输入口令,指定代理用户的口令。
# smpatch set
patchpro.proxy.passwd Web Proxy User Password: web-proxy-password
采用此方法设置口令可确保键入的口令不会在以下各项中以纯文本形式出现:
■ 标准输出
■ ps 命令的输出
■ Shell 历史记录文件
1
2
3
4
使用命令行界面配置修补程序管理环境(任务图)
422 系统管理指南:基本管理• 2006 年7 月
▼ 如何指定用于获取修补程序的用户名和口令(命令
行)
如果需要用户名和口令才能从Sun 修补程序服务器获取修补程序,则必须为Patch
Manager 指定它们。
如果您在SunSolve 上没有帐户,请在http://sunsolve.sun.com 中注册一个帐户。
从该Solaris 发行版开始,从Sun 修补程序服务器获取修补程序不再需要用户名和口
令。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定用户名。
# smpatch set patchpro.sun.user=user-name
通过使smpatch 提示您输入口令,指定用户的口令。
# smpatch set patchpro.sun.passwd Sun
User Password: password
采用此方法设置口令可确保键入的口令不会在以下各项中以纯文本形式出现:
■ 标准输出
■ ps 命令的输出
■ Shell 历史记录文件
▼ 如何指定修补程序源(命令行)
系统可以从以下源获取修补程序:
■ Sun 修补程序服务器
■ 本地修补程序集合
缺省情况下,系统将从Sun 修补程序服务器获取修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定修补程序源的URL。
1
2
3
1
2
使用命令行界面配置修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 423
■ 对于Sun 修补程序服务器,请键入:
# smpatch unset patchpro.patch.source
■ 对于目录中的修补程序集合,请使用以下URL 格式:
# smpatch set patchpro.patch.source=file:/directory-name
请注意,directory-name 可以是本地文件系统,也可以是远程挂载的文件系统。
有关使用file:/ URL 格式的示例,请参见示例21–2。
指定修补程序源
以下示例说明如何将系统配置为从本地系统上的/export/patches 目录获取修补程序。
# smpatch set patchpro.patch.source=file:/export/patches
以下示例说明如何将系统配置为从称为jupiter 的远程系统上的/export/patches 目录
获取修补程序。
# smpatch set
patchpro.patch.source=file:/net/jupiter/export/patches
以下示例说明如何将系统配置为从通过本地系统的第一个CD-ROM驱动器挂载的CD
获取修补程序。
# smpatch
set patchpro.patch.source=file:/cdrom/cdrom0
后续操作
指定修补程序源后,客户机系统即可管理修补程序。请参见第424 页中的“使用命令行
界面管理修补程序(任务图)”。
使用命令行界面管理修补程序(任务图)
使用smpatch 命令可以执行下表中介绍的大多数常见修补程序管理任务。请参见
smpatch(1M) 手册页。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第16 章。
示例21–2
更多信息
使用命令行界面管理修补程序(任务图)
424 系统管理指南:基本管理• 2006 年7 月
任务说明参考
分析系统以确定修补程序列
表。
您需要分析系统,以获取适当的修补程
序列表。根据分析,可以使用该列表中
的一个或多个修补程序更新系统。
第426 页中的“如何分析
系统以获取要应用的修补
程序列表(命令行)”
使用一个或多个修补程序在
单个过程中自动更新系统。
您需要自动下载并应用适合于系统的修
补程序。通过使用PatchManager 分析系
统,可以确定修补程序列表。
第427 页中的“如何使用
修补程序更新系统(命令
行)”
将修补程序应用于系统。确定要应用的修补程序并将它们下载到
系统后,即可对其进行应用。
第428 页中的“如何将修
补程序应用于系统(命令
行)”
由于某些修补程序可能会导致系统变得
不稳定,因此它们应该在系统处于单用
户模式下时应用。这类修补程序与
singleuser 修补程序属性关联。在单用
户模式下,必须使用smpatch add 命令应
用修补程序。
第428 页中的“如何将修
补程序应用于系统(命令
行)”
某些修补程序为非标准修补程序,必须
手动进行应用。
第429 页中的“如何应用
非标准修补程序(命令
行)”
第444 页中的“如何下载
和应用Solaris 修补程序”
确定要应用的修补程序是否取决于最初
应用的其他修补程序。此任务是可选
的。
第430 页中的“如何解析
修补程序列表(命令行)
”
从系统中删除修补程序。您需要删除(或卸载)已应用于系统的
修补程序。
第432 页中的“如何从系
统中删除修补程序(命令
行)”
查看修补程序管理工具日志
项。此任务是可选的。
查看系统日志文件中的PatchManager 日
志项,找出安装修补程序管理工具或应
用修补程序方面的问题。
第432 页中的“如何查看
PatchManager 日志项(命
令行)”
使用luupgrade 将修补程序应
用于系统上的非活动引导环
境。
您需要使用Solaris Live Upgrade 将修补程
序应用于具有多个引导环境的系统。
第431 页中的“如何使用
luupgrade 将修补程序列表
应用于非活动的引导环境
(命令行)”
注– 以下过程和示例说明如何运行本地模式(缺省情况下的运行模式)的smpatch 命
令。要运行远程模式版本,请使用任何验证选项(-L 除外)或远程选项。请参见
smpatch(1M) 手册页。
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 425
▼ 如何分析系统以获取要应用的修补程序列表(命令
行)
可以执行系统分析,以确定适当修补程序的列表。该列表按应用修补程序所使用的顺
序排列。还可以提供一个列表作为输入,以限制仅对该列表中的一个或多个修补程序
进行分析。除了执行分析以外,还可以保存修补程序列表以便进行修改或以后使用。
系统分析将修补程序列表写入标准输出,则通过将标准输出重定向到文件,即可将修
补程序列表的内容保存到文件。
修补程序列表中的每一行都有两列。第一列是修补程序ID,第二列是修补程序的概
述。
如果为smpatch analyze命令提供修补程序(一个或多个)的列表,则该修补程序列表
将增加相关性所需的任何修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
执行系统的修补程序分析,并将修补程序列表有选择地保存到文件中。
■ 要为系统创建所有适当修补程序的列表,请键入:
# smpatch analyze
■ 要根据修补程序列表为系统创建特定修补程序的列表,请键入:
# smpatch analyze -x idlist=patch-list-file
■ 要为系统创建特定修补程序的列表,请键入:
# smpatch analyze -i patch-id...
分析系统以获取要应用的修补程序的列表
以下示例说明如何分析系统以创建所有适当修补程序的列表。列表将写入
/tmp/patch.all 文件中。
# smpatch analyze
> /tmp/patch.all
以下示例说明如何创建修补程序列表plist,修改该列表并解析修补程序相关性。列表
将写入/tmp/patch.plist 文件中。
1
2
示例21–3
使用命令行界面管理修补程序(任务图)
426 系统管理指南:基本管理• 2006 年7 月
# smpatch analyze
> plist # vi plist . . . # smpatch
analyze -x idlist=plist > /tmp/patch.plist
以下示例说明如何解析修补程序112785-28 的修补程序相关性,并将生成的修补程序列
表写入文件/tmp/patch.out 。修补程序112785-28 依赖于修补程序113096-03。运行
smpatch analyze 命令后,patch.out 文件会包含按此顺序排列的列表:113096-03 和
112785-28。
# smpatch
analyze -i 112785-28 > /tmp/patch.out
▼ 如何使用修补程序更新系统(命令行)
系统更新在一个步骤中执行整个修补程序管理进程。首先,通过分析确定系统的适当
修补程序。接下来,将这些修补程序下载到系统。最后,将这些修补程序应用于系
统。
所有的标准修补程序都通过更新得以应用。通过更改缺省的修补程序应用策略,可以
将系统配置为应用某些非标准修补程序。要更改系统的策略,请参见第435 页中的“如
何更改修补程序应用策略(命令行)”。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
采用以下方法之一使用修补程序更新系统:
■ 要使用所有适当的修补程序来更新系统,请键入:
# smpatch update
■ 要使用文件中列出的所有修补程序更新系统,首先要创建一个修补程序列表(请参
见第426 页中的“如何分析系统以获取要应用的修补程序列表(命令行)”),然
后键入:
# smpatch update -x idlist=patch-list-file
■ 要使用特定的修补程序来更新系统,请键入:
# smpatch update -i patch-id -i patch-id ...
如果使用-i 或-x idlist= 选项指定特定的修补程序,则更新之前,列表中将增加它们
所依赖的修补程序。
1
2
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 427
注– disallowed_patch_list 修补程序列表文件(位于下载目录中)中列出了不能应用
于系统的所有修补程序。可以使用此文件作为smpatch add 命令的输入。
例如,您可以将系统引导至单用户模式,并通过键入以下内容应用
disallowed_patch_list 文件中列出的修补程序:
# init
S # smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list
有关更多信息,请参见第428 页中的“如何将修补程序应用于系统(命令行)”。
使用修补程序更新系统
以下示例说明如何使用修补程序112622-12 和112771-17 更新系统。
# smpatch update -i 112622-12 -i 112771-17
以下示例说明如何使用名为plist 的修补程序列表作为输入更新系统。接着说明如何创
建修补程序列表,并修改此列表使其仅包含要对系统应用的修补程序。然后,使用
smpatch update 命令应用修补程序并更新系统。
1. 通过执行分析创建修补程序列表。
2. 编辑修补程序列表以使其仅包括要应用的修补程序。
3. 运行smpatch update 命令以应用修补程序。
例如:
# smpatch analyze > plist . . . # vi plist .
. . # smpatch update -x idlist=plist . . .
▼ 如何将修补程序应用于系统(命令行)
可以使用smpatch add 命令将一个或多个已下载的修补程序应用于系统。
在系统处于单用户模式下或多用户模式下时,均可使用smpatch 命令的本地模式版本应
用一个或多个已下载的修补程序。
注意– smpatch add 命令将忽略修补程序应用策略,且不会在应用修补程序时解析相关
性。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
示例21–4
1
使用命令行界面管理修补程序(任务图)
428 系统管理指南:基本管理• 2006 年7 月
将已下载的修补程序应用于系统。
■ 要应用文件中列出的所有修补程序,请键入:
# smpatch add -x idlist=patch-list-file
■ 要应用特定的修补程序,请键入:
# smpatch add -i patch-id -i patch-id ...
■ 要应用具有singleuser 属性的特定修补程序,必须首先将系统引导至单用户模式。
键入:
# init
S # smpatch add -i patch-id -i patch-id ...
■ 要应用不能通过smpatch update 命令应用的修补程序的列表,必须首先将系统引导
至单用户模式。键入:
# init S # smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list
将修补程序应用于系统
■ 以下示例说明如何在系统处于单用户模式下时应用文件plist 中列出的修补程序。
Requesting
System Maintenance Mode SINGLE USER MODE Root password for system maintenance
(control-d to bypass): xxxxxxx single-user privilege
assigned to /dev/console. Entering System Maintenance Mode Entering System
Maintenance Mode . . . # smpatch add -x idlist=plist
■ 以下示例说明如何在系统处于单用户模式下时应用修补程序112662-12。
Requesting System Maintenance
Mode SINGLE USER MODE Root password for system maintenance (control-d to
bypass): xxxxxxx single-user privilege assigned to
/dev/console. Entering System Maintenance Mode Entering System Maintenance
Mode . . . # smpatch add -i 112662-12
▼ 如何应用非标准修补程序(命令行)
不能使用smpatch 应用具有interactive 属性集的非标准修补程序。要应用此修补程
序,请查看修补程序的自述文件的“特殊安装说明”部分中的信息。
成为超级用户或作为等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南
:安全性服务》中的“配置RBAC(任务列表)”。
2
示例21–5
1
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 429
在下载目录中,找到要应用的非标准修补程序。
# cd /var/sadm/spool; ls
要访问修补程序自述文件,请执行以下操作之一:
■ 查看位于http://sunsolve.sun.com 中的Sun 修补程序服务器中的修补程序自述文
件。
■ 要从JAR 归档文件中提取修补程序自述文件,请执行以下操作:
a. 确定自述文件的名称。
b. 提取自述文件。
c. 查看自述文件。
按照该自述文件的“特殊安装说明”部分中的说明应用修补程序。
▼ 如何解析修补程序列表(命令行)
有时,一个修补程序取决于另一个修补程序,也即是说,第一个修补程序只能在应用
另一个修补程序之后才能应用于系统。此时可以说第一个修补程序与第二个修补程序
之间具有相关性。
如果指定了要应用的修补程序列表,可以解析修补程序列表的相关性。生成的列表可
能包括应用指定的修补程序前必须应用的其他修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
解析修补程序列表。
■ 解析在命令行中指定的修补程序列表,每次一个。
# smpatch analyze -i patch-id -i patch-id ...
■ 解析在文件中指定的修补程序列表。
# smpatch analyze -x idlist=patch-list-file
解析修补程序列表
以下示例说明如何解析修补程序112785-28 的修补程序相关性,并将生成的修补程序列
表写入文件/tmp/patch.out 。修补程序112785-28 取决于修补程序113096-03。运行
smpatch analyze 命令后,patch.out 文件包含按此顺序排列的列表:113096-03 和
112785-28。
2
3
4
1
2
示例21–6
使用命令行界面管理修补程序(任务图)
430 系统管理指南:基本管理• 2006 年7 月
# smpatch analyze -i 112785-28 > /tmp/patch.out
以下示例说明如何获取已修改的修补程序列表plist,并解析修补程序相关性。列表将
写入/tmp/patch.plist 文件中。
# smpatch analyze
-x idlist=plist > /tmp/patch.plist
▼ 如何使用luupgrade 将修补程序列表应用于非活动
的引导环境(命令行)
luupgrade 可使用由smpatch命令创建的修补程序列表,以将修补程序应用于非活动引
导环境。还可以使用luupgrade 命令根据showrev 信息从非活动引导环境中删除修补程
序。请参见luupgrade(1M) 和showrev(1M) 手册页。
注– 此过程假设您已创建二级引导环境,它是活动的引导环境的副本。有关创建引导环
境的信息,请参见lumake(1M) 手册页。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
在活动引导环境中执行修补程序分析,以获取要应用于非活动引导环境的适当修补程
序的列表,并删除每个修补程序项的概述。
# smpatch analyze | sed ’s/ .*//’ > patch-list-file
经过修改的文件将成为修补程序列表,每行包含一个修补程序ID。
将修补程序列表中的修补程序下载到系统。
# smpatch download -x idlist=patch-list-file
将修补程序列表中的修补程序应用于非活动引导环境。
# luupgrade -t -n BE-name -s dir-name ‘cat patch-list-file‘
必须指定要更新的非活动引导环境的名称BE-name 以及修补程序的存储目录
dir-name。
(可选)要从非活动引导环境中删除修补程序,请使用以下命令:
# luupgrade -T -n BE-name patch-id
必须指定要更新的非活动引导环境的名称BE-name 以及要删除的修补程序patch-id。
1
2
3
4
5
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 431
使用luupgrade 将修补程序列表应用于非活动引导环境
■ 以下示例说明如何使用PatchManager 和Solaris Live Upgrade 命令将修补程序列表应
用于非活动引导环境。对于本示例,已创建了活动引导环境的副本引导环境be2。
首先,请使用smpatch analyze 和sed 命令分析活动引导环境并创建修补程序列表
plist,该列表中的每一行都包括一个修补程序ID。sed 命令用于从每个修补程序项
中删除概述。使用smpatch download 命令下载列表中的修补程序。然后,使用
luupgrade 命令将修补程序列表应用于系统的非活动引导环境。非活动引导环境称
为be2,修补程序所在的目录为活动引导环境中的/var/sadm/spool。
# smpatch analyze | sed
’s/ .*//’ > plist . . . # smpatch download -x idlist=plist . . . # luupgrade -t -n be2 -s /var/sadm/spool ‘cat
plist‘ . . .
■ 以下示例说明如何使用PatchManager 和Solaris Live Upgrade 命令从非活动引导环境
中删除修补程序。对于本示例,已创建了活动引导环境的副本引导环境be2。
使用luupgrade 命令从系统的非活动引导环境be2 中删除修补程序107058-01。
# luupgrade -T -n
be2 107058-01 . . .
▼ 如何从系统中删除修补程序(命令行)
一次只能删除一个修补程序。
如果系统具有多个引导环境,则可以使用luupgrade 命令从非活动引导环境中删除修补
程序列表。请参见第431 页中的“如何使用luupgrade 将修补程序列表应用于非活动的
引导环境(命令行)”。
确定要删除的修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
从系统中删除该修补程序。
# smpatch remove -i patch-id
▼ 如何查看PatchManager 日志项(命令行)
PatchManager 将向系统日志文件/var/adm/messages 中写入内容。
选择用于查看有关修补程序安装失败的信息的方法。
示例21–7
1
2
3
1
使用命令行界面管理修补程序(任务图)
432 系统管理指南:基本管理• 2006 年7 月
■ /var/adm/messages -确定使用PatchManager 将修补程序应用于系统时发现的问
题。
■ Solaris WBEM 日志-要通过命令行查看此日志,请使用smlog view 命令。请参见
smlog(1M) 手册页。
查看适当日志文件中的日志项。
使用命令行界面优化修补程序管理环境(任务图)
下表列出了优化系统的修补程序管理环境时可能执行的可选任务。
使用smpatch 命令优化修补程序管理环境。有关可设置的配置参数的列表,请参见第
416 页中的“设置PatchManager 配置参数”和smpatch(1M) 手册页。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第311 页中的
“Solaris 操作系统中软件管理方面的新增功能”。
以下是可使用Sun PatchManager 执行的可选任务。
任务说明参考
获取有关修补程序管理环境
的配置信息。
查看可能有助于诊断问题的修补程序管
理环境的配置。
第434 页中的“如何查看
修补程序管理环境的配置
设置(命令行)”
更改系统的修补程序应用策
略。
PatchManager 可以自动使用标准修补程
序更新系统。如果要使用某些类型的非
标准修补程序来更新系统,则必须更改
修补程序应用策略。
缺省情况下,更新操作仅应用与
standard、rebootafter 或
reconfigafter 属性关联的修补程序。
第435 页中的“如何更改
修补程序应用策略(命令
行)”
更改用于系统分析的修补程
序集。
PatchManager 根据所有可用的Sun 修补
程序执行分析。如果只需要应用其他修
补程序集(如建议的修补程序簇)中的
修补程序,则必须更改该修补程序集。
第436 页中的“如果更改
修补程序集(命令行)”
设置不同的目录位置。如果缺省位置不是足够大,您可能需要
为下载目录或卸载目录指定不同的位
置。
第436 页中的“如何更改
目录位置(命令行)”
2
使用命令行界面优化修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 433
任务说明参考
将配置参数重置为缺省值。您可能需要将配置参数重置为缺省值。
请注意,某些配置参数具有空缺省值。
第437 页中的“如何将配
置参数重置为缺省值(命
令行)”
注– 以下过程和示例说明如何运行本地模式(缺省情况下的运行模式)的smpatch 命
令。要运行远程模式版本,请使用任何验证选项(-L 除外)或远程选项。请参见
smpatch(1M) 手册页。
▼ 如何查看修补程序管理环境的配置设置(命令行)
可以检查修补程序管理环境的配置设置,以帮助诊断问题或了解系统的修补程序相关
设置。
配置设置输出显示所有配置参数的项。每一项将单独占用一行。
列出所有设置时,每一项都包括三个字段:参数名称、已指定的值及其缺省值。字段
之间以一个或多个制表符字符分隔。
以下值具有特殊含义:
■ - 表示未设置任何值
■ "" 表示值为空字符串
■ /- 表示值为-
■ /"" 表示值为""(两个双引号)
除了这些特殊值以外,输出中可能还会出现以下特殊字符:
■ /t 表示制表符
■ /n 表示换行
■ // 表示反斜杠
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
列出修补程序管理环境的配置设置。
■ 要列出所有设置,请键入:
# smpatch get
■ 要列出一个或多个参数的值,请键入:
1
2
使用命令行界面优化修补程序管理环境(任务图)
434 系统管理指南:基本管理• 2006 年7 月
# smpatch get parameter-name...
查看修补程序管理环境的配置设置
以下示例说明如何列出修补程序管理环境的所有配置设置。
# smpatch get patchpro.backout.directory
- "" patchpro.download.directory - /var/sadm/spool patchpro.install.types
- rebootafter:reconfigafter:standard patchpro.patch.source
- https://updateserver.sun.com/solaris/ patchpro.patchset
- patchdb patchpro.proxy.host - "" patchpro.proxy.passwd
**** **** patchpro.proxy.port - 8080 patchpro.proxy.user
- "" patchpro.sun.passwd **** **** patchpro.sun.user
- ""
以下示例说明如何列出patchpro.download.directory 和patchpro.patchset 参数的配
置设置。
# smpatch get patchpro.download.directory patchpro.patchset /var/sadm/spool
patchdb
▼ 如何更改修补程序应用策略(命令行)
如果要配置系统以便在更新操作期间应用某些非标准修补程序,则必须更改修补程序
应用策略。
缺省情况下,更新操作只能应用与standard、rebootafter 或reconfigafter 属性关联
的修补程序。
注意– 如果更改了缺省策略,Sun 不保证修补程序能正确应用于您的系统,或系统正常
运行。
有关修补程序应用策略的更多信息,请参见第415 页中的“自定义修补程序应用策略
”。
确定要在更新期间应用的非标准修补程序属性的类型。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定新的策略。
# smpatch set patchpro.install.types=patch-property
示例21–8
1
2
3
使用命令行界面优化修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 435
patch-property 是修补程序属性的列表,各属性之间用冒号(:) 进行分隔。有关有效修补
程序属性的列表,请参见第415 页中的“自定义修补程序应用策略”。
更改修补程序应用策略
本示例说明如何设置系统的策略。新的策略也包括为使修补程序生效而立即重新引导
系统所需的修补程序。
# smpatch set / patchpro.install.types=standard:rebootafter:reconfigafter:rebootimmediate
▼ 如果更改修补程序集(命令行)
可以选择根据不同的Sun 修补程序集(如建议的修补程序簇)来分析系统。缺省情况
下,可以使用修补程序集“所有可用的修补程序”。
从该Solaris 发行版开始,Sun 提供的修补程序集只有“所有可用的修补程序”和“建议
的修补程序簇”。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定要使用的修补程序集。
■ 要根据所有修补程序进行分析,请键入:
# smpatch set patchpro.patchset=patchdb
■ 要根据建议的修补程序进行分析,请键入:
# smpatch set patchpro.patchset=recommended
■ 要根据其他修补程序集进行分析,请键入:
# smpatch set patchpro.patchset=patch-set
▼ 如何更改目录位置(命令行)
PatchManager 配置为使用以下缺省位置存储修补程序相关数据:
■ 下载目录-从修补程序源下载修补程序时这些修补程序所在的存储目录。该位置也
是应用修补程序的目录。成功应用修补程序之前,修补程序始终位于此目录中。缺
省位置为/var/sadm/spool。
示例21–9
1
2
使用命令行界面优化修补程序管理环境(任务图)
436 系统管理指南:基本管理• 2006 年7 月
■ 卸载数据目录-可卸载修补程序的数据所在的存储目录。缺省情况下,卸载数据存
储在patchadd 所使用的缺省位置。此位置是已通过修补程序修改的每个软件包的
save 目录。例如,如果修补程序修改了SUNWcsr 软件包,则该修补程序的卸载数据
存储在/var/sadm/pkg/SUNWcsr/save 目录中。
如果已用完了缺省位置中的可用磁盘空间,请为这些目录指定不同的位置。
注– 如果指定了不同的目录,则必须手动创建该目录之后,才能执行所有修补程序操
作。
确定目录的新位置。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
为任何一个修补程序相关目录指定新的目录dir-name。
■ 要指定不同的下载目录,请键入:
# smpatch set patchpro.download.directory=dir-name
例如,其中dir-name 为/export/patches。
■ 要指定不同的卸载目录,请键入:
# smpatch set patchpro.backout.directory=dir-name
例如,其中dir-name 是/export/patches/backout。
▼ 如何将配置参数重置为缺省值(命令行)
必须明确重置参数值。不能使用smpatch 命令同时重置所有的参数值。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
将修补程序管理环境的配置参数重置为其缺省值。
# smpatch unset parameter-name...
1
2
3
1
2
使用命令行界面优化修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 437
将配置参数重置为缺省值。
以下示例说明如何将系统配置为从Sun 修补程序服务器(而不是其他的修补程序源)
获取修补程序。
# smpatch unset patchpro.patch.source
以下示例说明如何将修补程序下载目录和卸载目录位置重置为缺省值。
# smpatch unset patchpro.download.directory patchpro.backout.directory
PatchManager 疑难解答
本节介绍使用PatchManager 执行以下任务时可能遇到的常见问题:
■ 分析系统以确定适当修补程序的列表
■ 将修补程序下载到系统
■ 将修补程序应用于系统
PatchManager 一般错误
本节介绍一般的PatchManager 错误。
由于网络或服务器故障而无法更新修补程序
说明: 运行smpatch update 命令行时,将出现以下任何错误:
Cannot connect to retrieve patchdb: Connection refused
或:
Cannot connect to retrieve patchdb: Connection timed out
或:
Unknown host (host-name) connecting
to http://host-name/
原因: 此问题可能是由客户机与修补程序服务器之间的网络故障导致的,
或者修补程序服务器已关闭。
解决方法: 确保patchpro.patch.source 指向有效的修补程序源。
检查网络情况。
如果是系统与Sun 之间的问题,请等待问题解决。
示例21–10
PatchManager 疑难解答
438 系统管理指南:基本管理• 2006 年7 月
在远程模式下使用smpatch 时,SolarisWBEM服务不可用
说明: 在远程模式下运行smpatch 或尝试重新启动SolarisWBEM服务时,
将出现以下错误消息:
# smpatch analyze -u
root Authenticating as user: root Type /? for help, pressing
<enter> accepts the default denoted by [ ] Please enter a string value
for: password :: root-password There is no Solaris
Management Console Server running on pserver2. # /etc/init.d/init.wbem
status Solaris Management Console server not running on port 898.
# /etc/init.d/init.wbem start # /etc/init.d/init.wbem
status Solaris Management Console server not running on port 898.
解决方法: 重新启动SolarisWBEM服务之前,先将它们手动停止。
# /etc/init.d/init.wbem stop # /etc/init.d/init.wbem
start # /etc/init.d/init.wbem status Solaris
Management Console server version 2.1.0 running on port 898.
Solaris 10:不能初始化Java 虚拟机
说明: 运行任何smpatch 子命令时,都会看到以下错误消息:
# smpatch
analyze Error occurred during initialization of VM java.lang.Error:
Properties init: Could not determine current working directory.
解决方法: 更改目录并重试该命令。
# cd / # smpatch analyze
PatchManager 疑难解答
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务)
409
注– 从该Solaris 发行版开始,并非所有Sun 修补程序都可通过Sun PatchManager 获取。
这类修补程序包括不符合PatchPro 标准的那些修补程序,以及具有第三方合同限制的
那些修补程序。
PatchManager 功能
PatchManager 具有以下功能:
■ PatchPro 分析引擎
■ 本地模式的命令行界面
■ 修补程序列表操作
注– Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功能,而
且还具有一些新增功能和增强功能。如果运行的是Solaris 10 初始发行版,并且希望使
用Sun Update Connection,请安装适当的修补程序或将系统升级到Solaris 10 1/06 发行
版。
有关安装和使用Sun Update Connection, System Edition 软件的信息,请参见位于
http://docs.sun.com/app/docs/coll/1320.1 中的产品文档。
PatchPro 分析引擎
PatchManager 引入了PatchPro 功能,可自动执行修补程序管理进程。此进程包括在系
统上执行修补程序分析,然后下载并应用所需的修补程序。此自动功能以前是作为单
独的PatchPro 产品为Solaris 2.6、Solaris 7、Solaris 8 和Solaris 9 提供的,现在则是标准
Solaris 10 发行版的一部分。
PatchPro 使用签名的修补程序,通过确保未对Solaris 修补程序进行修改来提高这些修
补程序的安全性。
注– Sun PatchManager 2.0 包括用于转换的pprosetup 和pprosvc 命令。最好不要使用这
些命令,而应改用smpatch 命令。
本地模式的命令行界面
注– 在Solaris 8 系统上,仅能在本地模式下运行smpatch。
PatchManager 功能
410 系统管理指南:基本管理• 2006 年7 月
从Solaris 9 开始,smpatch 命令可以在两种模式下使用:本地模式和远程模式。本地模
式仅能在本地系统上运行。系统处于单用户模式或多用户模式下时,均可运行此模
式。远程模式可用于针对远程系统执行任务。具有适当授权的用户或角色均可使用本
地模式和远程模式。
缺省情况下,系统会运行本地模式。在本地模式下,系统不会使用SolarisWBEM服
务,并且验证选项或引用远程系统的那些选项均不可用。smpatch 命令在本地模式下的
运行速度比在远程模式下更快。
如果指定任何远程选项或验证选项(-L 除外),则系统将使用远程模式。
本地模式下的单用户模式操作
当系统处于单用户模式下时,可以在本地模式下使用smpatch add 命令应用修补程序。
当修补程序与singleuser 修补程序属性关联时,或要将所有修补程序应用于静默系统
时,请采用此方式应用修补程序。
当系统在单用户模式下运行时,应仅使用smpatch add、smpatch order 和smpatch
remove 命令管理修补程序。
当系统在单用户模式下运行时,可以使用smpatch get、smpatch set 和smpatch unset
命令配置修补程序管理环境。
当系统在单用户模式下运行时,请勿使用smpatch analyze、smpatch download 和
smpatch update 命令。这些命令取决于系统处于单用户模式下时不可用的网络服务。
如果以前使用smpatch update 命令更新带有修补程序的系统,则某些修补程序可能未
被应用。如果这类修补程序不符合修补程序应用策略,则不能进行应用,必须在单用
户模式下手动应用这类修补程序。
要在系统处于单用户模式下时应用修补程序,请使用带有-x idlist= 选项的smpatch
add 命令指定要应用的修补程序的列表。
可以使用disallowed_patch_list 文件作为smpatch add 命令的输入来应用singleuser
修补程序。此文件(存储在下载目录中)列出了在系统处于多用户模式下时无法通过
smpatch update 应用的任何修补程序。例如:
# smpatch
add -x idlist=/var/sadm/spool/disallowed_patch_list
修补程序列表操作
PatchManager 可以创建一个有序的修补程序列表,您可以将这些修补程序保存到文本
文件中并使用其执行修补程序操作。
PatchManager 功能
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 411
可以使用修补程序列表将同一组修补程序应用于具有相同硬件和软件配置的系统。或
者,可以创建一个包含所有相关安全修补程序的修补程序列表文件,并使用修补程序
列表将这些安全修补程序应用于一个或多个系统。
您可以采用以下任何一种方式使用smpatch 命令来创建一个包含有序修补程序列表的文
件:
■ 执行系统分析-使用smpatch analyze 命令分析系统,生成一个有序的修补程序列
表并将其写入文件。可以编辑此文件,以删除不需要的修补程序。
■ 提供特定的修补程序列表-根据为特定系统指定的修补程序集,使用smpatch
analyze 命令生成有序的修补程序列表。通过向列表中增加与其相关的修补程序,
可以对修补程序列表进行解析。
■ 指向系统中存储的修补程序集合-根据系统中存储的修补程序的集合,使用
smpatch order 命令生成有序的修补程序列表。
如果修改修补程序列表且修补程序在系统中可用,请使用smpatch order 命令按照适合
应用修补程序的顺序放置列表。否则,请使用smpatch analyze 命令,该命令也会生成
有序的修补程序列表。
可以使用修补程序列表作为smpatch add、smpatch analyze、smpatch download、
smpatch order 和smpatch update 命令的输入。
注意– smpatch add 命令尝试应用修补程序列表中的所有修补程序,无论修补程序和修
补程序相关性的应用策略如何。
Sun Patch Manager 概念
Sun PatchManager 是用于管理Solaris 系统上的修补程序的工具之一。
注– 有关用于管理该Solaris 发行版中的修补程序和更新的新工具信息,请参见第311 页
中的“Solaris 操作系统中软件管理方面的新增功能”。
PatchManager 主要对签名的修补程序进行操作,包括来自SunMicrosystems 的数字签
名。与未签名的修补程序(即不带数字签名的修补程序)相比,已签名的修补程序安
全性更高。将修补程序应用于系统之前,系统会验证修补程序的数字签名。有效的数
字签名可确保自应用签名以来尚未对应用的已签名修补程序进行修改。可以使用
smpatch add 命令应用未签名的修补程序。
修补程序管理进程
通过PatchManager,可以手动或自动执行修补程序管理进程,其中包括以下任务:
Sun PatchManager 概念
412 系统管理指南:基本管理• 2006 年7 月
■ 其中包括自动分析系统以确定适当的修补程序,下载修补程序并将修补程序应用于
系统等
■ 分析系统以获取适当修补程序的列表
■ 将适当的修补程序下载到系统
■ 将适当的修补程序应用于系统
■ 为系统配置修补程序管理环境
■ 优化系统的修补程序管理环境
■ 从系统中删除修补程序
有关使用Solaris 修补程序的建议策略和做法的信息,请转至《Solaris Patch
Management: Recommended Strategies》。
使用修补程序自动更新系统
PatchManager 可自动将一组适当的修补程序应用于系统。更新在修补程序管理进程中
执行以下步骤:
■ 分析系统以确定哪些修补程序适用
■ 将这些修补程序下载到系统
■ 仅应用符合修补程序应用策略的修补程序
成功应用修补程序后,从下载目录中删除已下载的修补程序。
修补程序根据指定的策略以及与下载的修补程序关联的修补程序属性应用于系统。
如果某个修补程序不符合修补程序应用策略,则不会应用该修补程序,而会将该修补
程序的修补程序项写入下载目录中的disallowed_patch_list 文件。此时,Sun Patch
Manager 会继续尝试应用其他修补程序。之后,可以转至下载目录并使用smpatch add
命令手动应用此文件中列出的所有禁止的修补程序。对于设置了interactive 属性的所
有修补程序,请遵照修补程序的自述文件中的说明来应用它们。
例如,可以将系统引导至单用户模式,并通过键入以下命令来应用
disallowed_patch_list 文件中列出的修补程序:
# smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list
您可以使用smpatch 命令手动执行分析、下载和应用等任务,而不是执行更新。这些任
务将在以下各节中进行介绍。
分析系统
将修补程序应用于系统之前,可以确定需要哪些修补程序。可以使用PatchManager 执
行系统的修补程序分析,以获取适当修补程序的列表。
PatchManager 使用修补程序源(缺省情况下是SunSolve Online Web 站点)中的分析模
块和可用修补程序的列表执行Solaris 系统分析。有关修补程序源的信息,请参见第415
页中的“指定修补程序源”。
Sun PatchManager 概念
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 413
根据分析结果,可以下载修补程序并将其应用于系统。
有时,一个修补程序取决于另一个修补程序,也即是说,第一个修补程序只能在应用
另一个修补程序之后才能应用于系统。此时会说第一个修补程序与第二个修补程序之
间具有相关性。PatchManager 分析系统时,将检查修补程序相关性并将所有的修补程
序自动纳入生成的列表中。如果根据特定修补程序请求系统分析,PatchManager 将在
列表中添加解析修补程序相关性所需的所有修补程序。
注– 通过分析生成的修补程序列表基于Sun 修补程序服务器中所有可用的修补程序。有
关主机系统或其网络配置的明确信息不会传输到Sun。仅会传输对Sun 修补程序集的请
求。系统将扫描修补程序集以找到适合该主机系统的修补程序,显示结果,然后有选
择性地下载这些修补程序。
将修补程序下载到系统
将修补程序应用于系统之前,必须先从Sun 修补程序服务器将所需的修补程序下载到
该系统。
可以根据系统分析从Sun 修补程序服务器下载修补程序,也可以指定要下载的特定修
补程序。
将修补程序应用于系统
PatchManager 可以将修补程序应用于系统。
如果使用smpatch add 命令应用特定的修补程序,则该命令仅会尝试应用已指定的那些
修补程序。smpatch add 命令不会尝试解析修补程序的相关性。如果要应用缺少相关性
的修补程序,则不会应用该修补程序。可以使用smpatch analyze 命令或smpatch
update 命令解析修补程序的相关性。
从系统中删除修补程序
您可能希望删除(或卸载)以前应用于系统的修补程序。通过PatchManager,可以删
除修补程序。
删除修补程序时,Solaris 修补程序工具会恢复已通过该修补程序修改的所有文件,除
非以下所有条件都成立:
■ 已通过patchadd -d 命令应用了该修补程序,该命令指示patchadd 不要保存正在更
新或替换的文件副本。
■ 已通过不带-d 选项的patchadd 命令应用了该修补程序,并且删除了生成的卸载文
件。
■ 该修补程序已被更高版本的修补程序废弃。
■ 该修补程序是另一个修补程序所必需的。
Solaris 修补程序工具会调用pkgadd 命令恢复最初应用修补程序时保存的软件包。
Sun PatchManager 概念
414 系统管理指南:基本管理• 2006 年7 月
在修补程序删除过程中,patchrm 命令会在/tmp/backoutlog.process-id 文件中记录卸载
过程。如果成功删除该修补程序,则系统会自动删除此日志文件。
请注意,使用smpatch remove 命令时一次仅能删除一个修补程序。
注– 如果尝试删除与其他修补程序相关的修补程序,则该修补程序不会被删除。如果删
除了与该修补程序相关的所有修补程序,则可以删除该修补程序。
指定修补程序源
使用PatchManager 时,客户机系统必须对Solaris 修补程序和修补程序数据具有访问权
限。客户机系统和本地修补程序服务器都可从以下源中获取修补程序:
■ 修补程序服务器-为Solaris 修补程序和修补程序数据提供访问的服务器。
■ 本地修补程序集合-存储在本地系统的可用目录中的修补程序和修补程序数据的集
合。这类目录可以是本地目录、共享的网络目录或本地系统上挂载的CD。
客户机系统的缺省修补程序源为Sun 修补程序服务器。因此,必须直接或通过Web 代
理将从Sun 修补程序服务器获取修补程序的任何客户机系统连接至Internet。
可以使用不同修补程序源的组合来配置这些修补程序管理环境。
客户机从以下源访问修补程序和修补程序数据:
■ Sun 修补程序服务器-客户机系统从Sun 修补程序服务器获取修补程序。
此配置要求直接或通过Web 代理将客户机系统连接至Internet。
■ 本地修补程序集合-客户机系统从本地系统上的修补程序集合获取修补程序和修补
程序数据。
此配置不要求客户机系统连接至Internet。
有关为客户机系统指定修补程序源的说明,请参见或第423 页中的“如何指定修补程序
源(命令行)”。
自定义修补程序应用策略
通过PatchManager,可以自定义更新系统时使用的修补程序应用策略。该策略可确定
在更新操作期间可应用的修补程序类型。
Solaris 修补程序分为标准或非标准两类。在多用户模式下运行时,可将标准修补程序
应用于Solaris 系统。此时不需要重新引导。这类修补程序与standard 修补程序属性关
联。
非标准修补程序具有以下特征之一:
Sun PatchManager 概念
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 415
■ 该修补程序与rebootafter、rebootimmediate、reconfigafter、reconfigimmediate
和singleuser 属性中的一项或多项关联。更新操作期间,可以应用这类非标准修补
程序(如果该策略允许)。
■ 该修补程序与interactive 属性关联。不能使用smpatch update 命令应用这类修补
程序。可以使用smpatch add 命令或patchadd 命令应用这类修补程序。
注– 从该Solaris 发行版开始,并非所有Sun 修补程序都可通过Sun PatchManager 获取。
这类修补程序包括不符合PatchPro 标准的那些修补程序,以及具有第三方合同限制的
那些修补程序。
可以指定更新期间PatchManager 可以应用的修补程序类型。这类修补程序可能包括需
要重新引导的那些修补程序或在系统处于单用户模式下时必须应用的那些修补程序。
有关以下修补程序属性的说明,请参见smpatch(1M) 手册页。
■ interactive
■ rebootafter
■ reconfigafter
■ rebootimmediate
■ reconfigimmediate
■ singleuser
■ standard
设置PatchManager 配置参数
可以使用smpatch 命令设置以下PatchManager 参数。
patchpro.patchset
要使用的修补程序集的名称。缺省名称为patchdb。
patchpro.download.directory
存储下载的修补程序以及从中应用修补程序的目录的路径。缺省位置为
/var/sadm/spool。
patchpro.backout.directory
保存修补程序卸载数据的目录路径。删除修补程序时,系统还会从此目录检索数
据。缺省情况下,卸载数据保存在软件包目录中。
patchpro.patch.source
指向修补程序集合的URL。缺省URL 是指Sun 修补程序服务器的URL,即
https://updateserver.sun.com/solaris/。
patchpro.sun.user
用于获取修补程序的Sun 用户名。通过在http://sunsolve.sun.com 中进行注册,可
以获取此用户名。缺省情况下,系统不允许访问合同修补程序。
Sun PatchManager 概念
416 系统管理指南:基本管理• 2006 年7 月
patchpro.sun.passwd
随Sun 用户名一同使用的口令。未设置缺省口令。如果指定了Sun 用户名,还必须
指定口令。
patchpro.proxy.host
Web 代理的主机名。缺省情况下,不会指定Web 代理,并且假设与Internet 建立直
接连接。
patchpro.proxy.port
Web 代理使用的端口号。缺省情况下,不会指定Web 代理,并且假设与Internet 建
立直接连接。缺省端口为8080。
patchpro.proxy.user
Web 代理进行验证使用的用户名。
patchpro.proxy.passwd
Web 代理进行验证使用的口令。
patchpro.install.types
您的修补程序应用策略。该值是零个或多个用冒号分隔的修补程序属性的列表,允
许通过更新操作(smpatch update) 应用这些属性。
缺省情况下,可以应用具有standard、rebootafter 和reconfigafter 属性的修补程
序。请参见第415 页中的“自定义修补程序应用策略”。
PatchManager 入门
要确定将修补程序下载并应用于系统的最佳方法,请参见第402 页中的“选择修补程
序和更新的最佳应用方法”。
要开始使用PatchManager,请找到以最佳方式描述您的修补程序管理环境的情况。
■ 客户机系统直接连接至Internet。
此时即可使用PatchManager 管理修补程序。请参见第419 页中的“访问Sun Patch
Manager 命令行界面”。
■ 客户机系统通过Web 代理的方式连接至Internet。
必须首先指定Web 代理的主机名和端口。如果需要,还应指定与Web 代理关联的
用户名和口令。请参见第422 页中的“如何指定Web 代理(命令行)”。
更改配置后,请参见第419 页中的“访问Sun PatchManager 命令行界面”。
■ 您需要用户名和口令才能从Sun 修补程序服务器访问修补程序。
如果需要获取用户名和口令,请在http://sunsolve.sun.com 中进行注册。
然后,为运行PatchManager 的每个客户机系统指定用户名和口令。请参见第423 页
中的“如何指定用于获取修补程序的用户名和口令(命令行)”。
更改配置后,请参见第419 页中的“访问Sun PatchManager 命令行界面”。
PatchManager 入门
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 417
Sun Patch Manager 支持的任务
Sun PatchManager 支持以下任务:
■ 对远程系统执行修补程序管理操作
可以在远程模式下使用smpatch 命令对远程系统执行修补程序管理操作。在本地模
式下,smpatch 命令仅能在本地系统上运行。
■ 分析系统以了解修补程序
■ 执行计划的修补程序分析
使用cron 命令运行smpatch analyze 命令。
■ 下载各个修补程序
■ 解析修补程序的相关性
要解析修补程序的相关性,请运行smpatch update 或smpatch analyze -i patch-id。
请注意,如果运行smpatch add,则不会解析修补程序的相关性。
■ 使用修补程序更新系统
■ 在系统处于单用户模式下时运行(仅限于使用smpatch 执行的本地模式操作)。
■ 对修补程序列表执行操作
■ 为系统配置修补程序管理环境
使用Sun Patch Manager 命令行界面管理Solaris 修补程序
(任务图)
下表列出了使用Sun PatchManager smpatch 命令行界面时可能执行的任务。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第311 页中的
“Solaris 操作系统中软件管理方面的新增功能”。
任务说明参考
访问命令行界面。如果要在命令行上执行修补程序管理任
务,请使用smpatch 命令。
第419 页中的“访问Sun
PatchManager 命令行界面
”
使用Sun PatchManager 命令行界面管理Solaris 修补程序(任务图)
418 系统管理指南:基本管理• 2006 年7 月
任务说明参考
为系统配置修补程序管理环
境。
缺省情况下,假设系统直接连接至
Internet,并配置为从Sun 修补程序服务
器获取修补程序。
如果您的系统不是这种情况,请更改配
置设置以匹配您的环境。
第421 页中的“使用命令
行界面配置修补程序管理
环境(任务图)”
管理系统上的修补程序。可以使用命令行界面执行系统分析、应
用一个或多个修补程序、查找修补程序
相关性、对修补程序列表进行排序以及
删除修补程序。
第424 页中的“使用命令
行界面管理修补程序(任
务图)”
(可选)优化系统的修补程
序管理环境。
更改某些可选的配置设置,如修补程序
应用策略。
第433 页中的“使用命令
行界面优化修补程序管理
环境(任务图)”
访问Sun Patch Manager 命令行界面
注意– 由于系统可能变得不稳定,请勿在系统上同时运行PatchManager 操作。请勿在
修补程序操作开始后将其中断。如果修补程序操作正在运行,则必须等待该操作完成
后才能开始其他操作。
可以具有适当授权的用户身份(如超级用户)或通过承担拥有适当配置文件的角色,
来运行本地模式或远程模式的smpatch 命令。
用户必须具有solaris.admin.patchmgr.* 授权才能运行smpatch 命令。
系统管理员配置文件包括相应的配置文件。要创建角色并将该角色分配给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
注– Sun PatchManager 2.0 包括用于转换的pprosetup 和pprosvc 命令。最好不要使用这
些命令,而应改用smpatch 命令。
有关smpatch 命令行选项的更多信息,请参见smpatch(1M) 手册页。
▼ 如何访问Sun Patch Manager 命令行界面(命令行)
缺省情况下,smpatch 命令在本地模式下运行。
决定管理本地系统上的修补程序,还是管理远程系统上的修补程序。
■ 如果要仅管理本地系统上的修补程序,请转至步骤2。
1
访问Sun PatchManager 命令行界面
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 419
■ 如果要管理远程系统上的修补程序,请转至步骤4。
SolarisWBEM服务必须在远程系统上运行。
以具有适当授权的用户身份登录系统,或承担具有适当授权的角色。
请注意,您必须是具有适当授权的用户才能承担适当的角色。请参见《系统管理指南
:安全性服务》中的“配置RBAC”。
运行所需的smpatch 命令。
例如:
$ smpatch analyze
以具有适当授权或允许承担具有适当授权的角色的用户身份登录系统。
运行带有-n 选项的smpatch 命令,以指定要对其进行操作的系统名称。
例如:
$ smpatch analyze -n system-name
要通过承担的角色执行操作,请键入:
$ smpatch analyze -r role-name -n system-name
访问Sun PatchManager 命令行界面
以下示例使用smpatch get 命令,列出了您的修补程序管理环境的配置设置。
本示例说明如何对本地系统运行smpatch 命令。
# smpatch get
本示例说明授权用户如何对称为jupiter 的远程系统运行smpatch 命令。
# smpatch get -n jupiter
本示例说明如何以patcher 角色对称为jupiter 的远程系统运行smpatch 命令。
# smpatch get -r patcher -n jupiter
后续操作
可以使用smpatch 命令为系统配置修补程序管理环境并管理修补程序。请参见以下内容
:
■ 第421 页中的“使用命令行界面配置修补程序管理环境(任务图)”
■ 第424 页中的“使用命令行界面管理修补程序(任务图)”
■ 第433 页中的“使用命令行界面优化修补程序管理环境(任务图)”
2
3
4
5
示例21–1
更多信息
访问Sun PatchManager 命令行界面
420 系统管理指南:基本管理• 2006 年7 月
使用命令行界面配置修补程序管理环境(任务图)
请使用smpatch 命令执行本节中的配置任务。有关可设置的配置参数的列表,请参见
第416 页中的“设置PatchManager 配置参数”和smpatch(1M) 手册页。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第311 页中的
“Solaris 操作系统中软件管理方面的新增功能”。
缺省情况下,修补程序管理环境配置为直接从Sun 修补程序服务器获取修补程序。因
此,如果系统符合以下一项或多项,则必须自定义环境:
■ 通过Web 代理的方式连接至Internet
■ 需要用户名和口令才能获取修补程序
■ 从Sun 修补程序服务器以外的修补程序源获取修补程序
下表列出了为系统配置修补程序管理环境时可能执行的任务。
任务说明参考
指定要使用的Web 代理。如果系统通过Web 代理连接至
Internet,则必须指定用于访问Sun 修补
程序服务器的Web 代理。
缺省情况下,不指定任何Web 代理。
第422 页中的“如何指定
Web 代理(命令行)”
指定为Web 代理提供验证所
需的用户名和口令。
如果Web 代理需要验证,则必须指定验
证所需的Web 代理用户。
缺省情况下,不指定任何Web 代理用
户。
第422 页中的“如何指定
Web 代理(命令行)”
指定从Sun 修补程序服务器获
取修补程序所需的用户名和
口令。
如果需要用户名和口令才能获取修补程
序,则必须指定用户名和口令。
第423 页中的“如何指定
用于获取修补程序的用户
名和口令(命令行)”
指定系统的修补程序源。系统可以从以下源之一获取修补程序:
■ Sun 修补程序服务器
■ 本地修补程序集合
系统的缺省修补程序源为Sun 修补程序
服务器。
第423 页中的“如何指定
修补程序源(命令行)”
使用命令行界面配置修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 421
注– 以下过程和示例说明如何运行本地模式(缺省情况下的运行模式)的smpatch 命
令。要运行远程模式版本,请使用任何验证选项(-L 除外)或远程选项。请参见
smpatch(1M) 手册页。
▼ 如何指定Web 代理(命令行)
如果系统通过Web 代理连接至Internet,则必须为PatchManager 提供有关的Web 代理
的信息。
请从网络管理员处获取Web 代理的主机名和端口。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定Web 代理。
# smpatch set patchpro.proxy.host=web-proxy-server /
patchpro.proxy.port=port
(可选)如果Web 代理需要进行验证,请提供用户名和口令。
请从网络管理员处获取此信息。
a. 指定用于验证的用户名。
# smpatch set patchpro.proxy.user=web-proxy-user
b. 通过使smpatch 提示您输入口令,指定代理用户的口令。
# smpatch set
patchpro.proxy.passwd Web Proxy User Password: web-proxy-password
采用此方法设置口令可确保键入的口令不会在以下各项中以纯文本形式出现:
■ 标准输出
■ ps 命令的输出
■ Shell 历史记录文件
1
2
3
4
使用命令行界面配置修补程序管理环境(任务图)
422 系统管理指南:基本管理• 2006 年7 月
▼ 如何指定用于获取修补程序的用户名和口令(命令
行)
如果需要用户名和口令才能从Sun 修补程序服务器获取修补程序,则必须为Patch
Manager 指定它们。
如果您在SunSolve 上没有帐户,请在http://sunsolve.sun.com 中注册一个帐户。
从该Solaris 发行版开始,从Sun 修补程序服务器获取修补程序不再需要用户名和口
令。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定用户名。
# smpatch set patchpro.sun.user=user-name
通过使smpatch 提示您输入口令,指定用户的口令。
# smpatch set patchpro.sun.passwd Sun
User Password: password
采用此方法设置口令可确保键入的口令不会在以下各项中以纯文本形式出现:
■ 标准输出
■ ps 命令的输出
■ Shell 历史记录文件
▼ 如何指定修补程序源(命令行)
系统可以从以下源获取修补程序:
■ Sun 修补程序服务器
■ 本地修补程序集合
缺省情况下,系统将从Sun 修补程序服务器获取修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定修补程序源的URL。
1
2
3
1
2
使用命令行界面配置修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 423
■ 对于Sun 修补程序服务器,请键入:
# smpatch unset patchpro.patch.source
■ 对于目录中的修补程序集合,请使用以下URL 格式:
# smpatch set patchpro.patch.source=file:/directory-name
请注意,directory-name 可以是本地文件系统,也可以是远程挂载的文件系统。
有关使用file:/ URL 格式的示例,请参见示例21–2。
指定修补程序源
以下示例说明如何将系统配置为从本地系统上的/export/patches 目录获取修补程序。
# smpatch set patchpro.patch.source=file:/export/patches
以下示例说明如何将系统配置为从称为jupiter 的远程系统上的/export/patches 目录
获取修补程序。
# smpatch set
patchpro.patch.source=file:/net/jupiter/export/patches
以下示例说明如何将系统配置为从通过本地系统的第一个CD-ROM驱动器挂载的CD
获取修补程序。
# smpatch
set patchpro.patch.source=file:/cdrom/cdrom0
后续操作
指定修补程序源后,客户机系统即可管理修补程序。请参见第424 页中的“使用命令行
界面管理修补程序(任务图)”。
使用命令行界面管理修补程序(任务图)
使用smpatch 命令可以执行下表中介绍的大多数常见修补程序管理任务。请参见
smpatch(1M) 手册页。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第16 章。
示例21–2
更多信息
使用命令行界面管理修补程序(任务图)
424 系统管理指南:基本管理• 2006 年7 月
任务说明参考
分析系统以确定修补程序列
表。
您需要分析系统,以获取适当的修补程
序列表。根据分析,可以使用该列表中
的一个或多个修补程序更新系统。
第426 页中的“如何分析
系统以获取要应用的修补
程序列表(命令行)”
使用一个或多个修补程序在
单个过程中自动更新系统。
您需要自动下载并应用适合于系统的修
补程序。通过使用PatchManager 分析系
统,可以确定修补程序列表。
第427 页中的“如何使用
修补程序更新系统(命令
行)”
将修补程序应用于系统。确定要应用的修补程序并将它们下载到
系统后,即可对其进行应用。
第428 页中的“如何将修
补程序应用于系统(命令
行)”
由于某些修补程序可能会导致系统变得
不稳定,因此它们应该在系统处于单用
户模式下时应用。这类修补程序与
singleuser 修补程序属性关联。在单用
户模式下,必须使用smpatch add 命令应
用修补程序。
第428 页中的“如何将修
补程序应用于系统(命令
行)”
某些修补程序为非标准修补程序,必须
手动进行应用。
第429 页中的“如何应用
非标准修补程序(命令
行)”
第444 页中的“如何下载
和应用Solaris 修补程序”
确定要应用的修补程序是否取决于最初
应用的其他修补程序。此任务是可选
的。
第430 页中的“如何解析
修补程序列表(命令行)
”
从系统中删除修补程序。您需要删除(或卸载)已应用于系统的
修补程序。
第432 页中的“如何从系
统中删除修补程序(命令
行)”
查看修补程序管理工具日志
项。此任务是可选的。
查看系统日志文件中的PatchManager 日
志项,找出安装修补程序管理工具或应
用修补程序方面的问题。
第432 页中的“如何查看
PatchManager 日志项(命
令行)”
使用luupgrade 将修补程序应
用于系统上的非活动引导环
境。
您需要使用Solaris Live Upgrade 将修补程
序应用于具有多个引导环境的系统。
第431 页中的“如何使用
luupgrade 将修补程序列表
应用于非活动的引导环境
(命令行)”
注– 以下过程和示例说明如何运行本地模式(缺省情况下的运行模式)的smpatch 命
令。要运行远程模式版本,请使用任何验证选项(-L 除外)或远程选项。请参见
smpatch(1M) 手册页。
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 425
▼ 如何分析系统以获取要应用的修补程序列表(命令
行)
可以执行系统分析,以确定适当修补程序的列表。该列表按应用修补程序所使用的顺
序排列。还可以提供一个列表作为输入,以限制仅对该列表中的一个或多个修补程序
进行分析。除了执行分析以外,还可以保存修补程序列表以便进行修改或以后使用。
系统分析将修补程序列表写入标准输出,则通过将标准输出重定向到文件,即可将修
补程序列表的内容保存到文件。
修补程序列表中的每一行都有两列。第一列是修补程序ID,第二列是修补程序的概
述。
如果为smpatch analyze命令提供修补程序(一个或多个)的列表,则该修补程序列表
将增加相关性所需的任何修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
执行系统的修补程序分析,并将修补程序列表有选择地保存到文件中。
■ 要为系统创建所有适当修补程序的列表,请键入:
# smpatch analyze
■ 要根据修补程序列表为系统创建特定修补程序的列表,请键入:
# smpatch analyze -x idlist=patch-list-file
■ 要为系统创建特定修补程序的列表,请键入:
# smpatch analyze -i patch-id...
分析系统以获取要应用的修补程序的列表
以下示例说明如何分析系统以创建所有适当修补程序的列表。列表将写入
/tmp/patch.all 文件中。
# smpatch analyze
> /tmp/patch.all
以下示例说明如何创建修补程序列表plist,修改该列表并解析修补程序相关性。列表
将写入/tmp/patch.plist 文件中。
1
2
示例21–3
使用命令行界面管理修补程序(任务图)
426 系统管理指南:基本管理• 2006 年7 月
# smpatch analyze
> plist # vi plist . . . # smpatch
analyze -x idlist=plist > /tmp/patch.plist
以下示例说明如何解析修补程序112785-28 的修补程序相关性,并将生成的修补程序列
表写入文件/tmp/patch.out 。修补程序112785-28 依赖于修补程序113096-03。运行
smpatch analyze 命令后,patch.out 文件会包含按此顺序排列的列表:113096-03 和
112785-28。
# smpatch
analyze -i 112785-28 > /tmp/patch.out
▼ 如何使用修补程序更新系统(命令行)
系统更新在一个步骤中执行整个修补程序管理进程。首先,通过分析确定系统的适当
修补程序。接下来,将这些修补程序下载到系统。最后,将这些修补程序应用于系
统。
所有的标准修补程序都通过更新得以应用。通过更改缺省的修补程序应用策略,可以
将系统配置为应用某些非标准修补程序。要更改系统的策略,请参见第435 页中的“如
何更改修补程序应用策略(命令行)”。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
采用以下方法之一使用修补程序更新系统:
■ 要使用所有适当的修补程序来更新系统,请键入:
# smpatch update
■ 要使用文件中列出的所有修补程序更新系统,首先要创建一个修补程序列表(请参
见第426 页中的“如何分析系统以获取要应用的修补程序列表(命令行)”),然
后键入:
# smpatch update -x idlist=patch-list-file
■ 要使用特定的修补程序来更新系统,请键入:
# smpatch update -i patch-id -i patch-id ...
如果使用-i 或-x idlist= 选项指定特定的修补程序,则更新之前,列表中将增加它们
所依赖的修补程序。
1
2
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 427
注– disallowed_patch_list 修补程序列表文件(位于下载目录中)中列出了不能应用
于系统的所有修补程序。可以使用此文件作为smpatch add 命令的输入。
例如,您可以将系统引导至单用户模式,并通过键入以下内容应用
disallowed_patch_list 文件中列出的修补程序:
# init
S # smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list
有关更多信息,请参见第428 页中的“如何将修补程序应用于系统(命令行)”。
使用修补程序更新系统
以下示例说明如何使用修补程序112622-12 和112771-17 更新系统。
# smpatch update -i 112622-12 -i 112771-17
以下示例说明如何使用名为plist 的修补程序列表作为输入更新系统。接着说明如何创
建修补程序列表,并修改此列表使其仅包含要对系统应用的修补程序。然后,使用
smpatch update 命令应用修补程序并更新系统。
1. 通过执行分析创建修补程序列表。
2. 编辑修补程序列表以使其仅包括要应用的修补程序。
3. 运行smpatch update 命令以应用修补程序。
例如:
# smpatch analyze > plist . . . # vi plist .
. . # smpatch update -x idlist=plist . . .
▼ 如何将修补程序应用于系统(命令行)
可以使用smpatch add 命令将一个或多个已下载的修补程序应用于系统。
在系统处于单用户模式下或多用户模式下时,均可使用smpatch 命令的本地模式版本应
用一个或多个已下载的修补程序。
注意– smpatch add 命令将忽略修补程序应用策略,且不会在应用修补程序时解析相关
性。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
示例21–4
1
使用命令行界面管理修补程序(任务图)
428 系统管理指南:基本管理• 2006 年7 月
将已下载的修补程序应用于系统。
■ 要应用文件中列出的所有修补程序,请键入:
# smpatch add -x idlist=patch-list-file
■ 要应用特定的修补程序,请键入:
# smpatch add -i patch-id -i patch-id ...
■ 要应用具有singleuser 属性的特定修补程序,必须首先将系统引导至单用户模式。
键入:
# init
S # smpatch add -i patch-id -i patch-id ...
■ 要应用不能通过smpatch update 命令应用的修补程序的列表,必须首先将系统引导
至单用户模式。键入:
# init S # smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list
将修补程序应用于系统
■ 以下示例说明如何在系统处于单用户模式下时应用文件plist 中列出的修补程序。
Requesting
System Maintenance Mode SINGLE USER MODE Root password for system maintenance
(control-d to bypass): xxxxxxx single-user privilege
assigned to /dev/console. Entering System Maintenance Mode Entering System
Maintenance Mode . . . # smpatch add -x idlist=plist
■ 以下示例说明如何在系统处于单用户模式下时应用修补程序112662-12。
Requesting System Maintenance
Mode SINGLE USER MODE Root password for system maintenance (control-d to
bypass): xxxxxxx single-user privilege assigned to
/dev/console. Entering System Maintenance Mode Entering System Maintenance
Mode . . . # smpatch add -i 112662-12
▼ 如何应用非标准修补程序(命令行)
不能使用smpatch 应用具有interactive 属性集的非标准修补程序。要应用此修补程
序,请查看修补程序的自述文件的“特殊安装说明”部分中的信息。
成为超级用户或作为等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南
:安全性服务》中的“配置RBAC(任务列表)”。
2
示例21–5
1
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 429
在下载目录中,找到要应用的非标准修补程序。
# cd /var/sadm/spool; ls
要访问修补程序自述文件,请执行以下操作之一:
■ 查看位于http://sunsolve.sun.com 中的Sun 修补程序服务器中的修补程序自述文
件。
■ 要从JAR 归档文件中提取修补程序自述文件,请执行以下操作:
a. 确定自述文件的名称。
b. 提取自述文件。
c. 查看自述文件。
按照该自述文件的“特殊安装说明”部分中的说明应用修补程序。
▼ 如何解析修补程序列表(命令行)
有时,一个修补程序取决于另一个修补程序,也即是说,第一个修补程序只能在应用
另一个修补程序之后才能应用于系统。此时可以说第一个修补程序与第二个修补程序
之间具有相关性。
如果指定了要应用的修补程序列表,可以解析修补程序列表的相关性。生成的列表可
能包括应用指定的修补程序前必须应用的其他修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
解析修补程序列表。
■ 解析在命令行中指定的修补程序列表,每次一个。
# smpatch analyze -i patch-id -i patch-id ...
■ 解析在文件中指定的修补程序列表。
# smpatch analyze -x idlist=patch-list-file
解析修补程序列表
以下示例说明如何解析修补程序112785-28 的修补程序相关性,并将生成的修补程序列
表写入文件/tmp/patch.out 。修补程序112785-28 取决于修补程序113096-03。运行
smpatch analyze 命令后,patch.out 文件包含按此顺序排列的列表:113096-03 和
112785-28。
2
3
4
1
2
示例21–6
使用命令行界面管理修补程序(任务图)
430 系统管理指南:基本管理• 2006 年7 月
# smpatch analyze -i 112785-28 > /tmp/patch.out
以下示例说明如何获取已修改的修补程序列表plist,并解析修补程序相关性。列表将
写入/tmp/patch.plist 文件中。
# smpatch analyze
-x idlist=plist > /tmp/patch.plist
▼ 如何使用luupgrade 将修补程序列表应用于非活动
的引导环境(命令行)
luupgrade 可使用由smpatch命令创建的修补程序列表,以将修补程序应用于非活动引
导环境。还可以使用luupgrade 命令根据showrev 信息从非活动引导环境中删除修补程
序。请参见luupgrade(1M) 和showrev(1M) 手册页。
注– 此过程假设您已创建二级引导环境,它是活动的引导环境的副本。有关创建引导环
境的信息,请参见lumake(1M) 手册页。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
在活动引导环境中执行修补程序分析,以获取要应用于非活动引导环境的适当修补程
序的列表,并删除每个修补程序项的概述。
# smpatch analyze | sed ’s/ .*//’ > patch-list-file
经过修改的文件将成为修补程序列表,每行包含一个修补程序ID。
将修补程序列表中的修补程序下载到系统。
# smpatch download -x idlist=patch-list-file
将修补程序列表中的修补程序应用于非活动引导环境。
# luupgrade -t -n BE-name -s dir-name ‘cat patch-list-file‘
必须指定要更新的非活动引导环境的名称BE-name 以及修补程序的存储目录
dir-name。
(可选)要从非活动引导环境中删除修补程序,请使用以下命令:
# luupgrade -T -n BE-name patch-id
必须指定要更新的非活动引导环境的名称BE-name 以及要删除的修补程序patch-id。
1
2
3
4
5
使用命令行界面管理修补程序(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 431
使用luupgrade 将修补程序列表应用于非活动引导环境
■ 以下示例说明如何使用PatchManager 和Solaris Live Upgrade 命令将修补程序列表应
用于非活动引导环境。对于本示例,已创建了活动引导环境的副本引导环境be2。
首先,请使用smpatch analyze 和sed 命令分析活动引导环境并创建修补程序列表
plist,该列表中的每一行都包括一个修补程序ID。sed 命令用于从每个修补程序项
中删除概述。使用smpatch download 命令下载列表中的修补程序。然后,使用
luupgrade 命令将修补程序列表应用于系统的非活动引导环境。非活动引导环境称
为be2,修补程序所在的目录为活动引导环境中的/var/sadm/spool。
# smpatch analyze | sed
’s/ .*//’ > plist . . . # smpatch download -x idlist=plist . . . # luupgrade -t -n be2 -s /var/sadm/spool ‘cat
plist‘ . . .
■ 以下示例说明如何使用PatchManager 和Solaris Live Upgrade 命令从非活动引导环境
中删除修补程序。对于本示例,已创建了活动引导环境的副本引导环境be2。
使用luupgrade 命令从系统的非活动引导环境be2 中删除修补程序107058-01。
# luupgrade -T -n
be2 107058-01 . . .
▼ 如何从系统中删除修补程序(命令行)
一次只能删除一个修补程序。
如果系统具有多个引导环境,则可以使用luupgrade 命令从非活动引导环境中删除修补
程序列表。请参见第431 页中的“如何使用luupgrade 将修补程序列表应用于非活动的
引导环境(命令行)”。
确定要删除的修补程序。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
从系统中删除该修补程序。
# smpatch remove -i patch-id
▼ 如何查看PatchManager 日志项(命令行)
PatchManager 将向系统日志文件/var/adm/messages 中写入内容。
选择用于查看有关修补程序安装失败的信息的方法。
示例21–7
1
2
3
1
使用命令行界面管理修补程序(任务图)
432 系统管理指南:基本管理• 2006 年7 月
■ /var/adm/messages -确定使用PatchManager 将修补程序应用于系统时发现的问
题。
■ Solaris WBEM 日志-要通过命令行查看此日志,请使用smlog view 命令。请参见
smlog(1M) 手册页。
查看适当日志文件中的日志项。
使用命令行界面优化修补程序管理环境(任务图)
下表列出了优化系统的修补程序管理环境时可能执行的可选任务。
使用smpatch 命令优化修补程序管理环境。有关可设置的配置参数的列表,请参见第
416 页中的“设置PatchManager 配置参数”和smpatch(1M) 手册页。
注– 可以使用Sun Update Connection, System Edition 软件管理Solaris 系统上的修补程序
和更新。Sun Update Connection 软件不仅具有与Sun PatchManager 2.0 工具相同的功
能,而且还具有一些新增功能和增强功能。有关更多信息,请参见第311 页中的
“Solaris 操作系统中软件管理方面的新增功能”。
以下是可使用Sun PatchManager 执行的可选任务。
任务说明参考
获取有关修补程序管理环境
的配置信息。
查看可能有助于诊断问题的修补程序管
理环境的配置。
第434 页中的“如何查看
修补程序管理环境的配置
设置(命令行)”
更改系统的修补程序应用策
略。
PatchManager 可以自动使用标准修补程
序更新系统。如果要使用某些类型的非
标准修补程序来更新系统,则必须更改
修补程序应用策略。
缺省情况下,更新操作仅应用与
standard、rebootafter 或
reconfigafter 属性关联的修补程序。
第435 页中的“如何更改
修补程序应用策略(命令
行)”
更改用于系统分析的修补程
序集。
PatchManager 根据所有可用的Sun 修补
程序执行分析。如果只需要应用其他修
补程序集(如建议的修补程序簇)中的
修补程序,则必须更改该修补程序集。
第436 页中的“如果更改
修补程序集(命令行)”
设置不同的目录位置。如果缺省位置不是足够大,您可能需要
为下载目录或卸载目录指定不同的位
置。
第436 页中的“如何更改
目录位置(命令行)”
2
使用命令行界面优化修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 433
任务说明参考
将配置参数重置为缺省值。您可能需要将配置参数重置为缺省值。
请注意,某些配置参数具有空缺省值。
第437 页中的“如何将配
置参数重置为缺省值(命
令行)”
注– 以下过程和示例说明如何运行本地模式(缺省情况下的运行模式)的smpatch 命
令。要运行远程模式版本,请使用任何验证选项(-L 除外)或远程选项。请参见
smpatch(1M) 手册页。
▼ 如何查看修补程序管理环境的配置设置(命令行)
可以检查修补程序管理环境的配置设置,以帮助诊断问题或了解系统的修补程序相关
设置。
配置设置输出显示所有配置参数的项。每一项将单独占用一行。
列出所有设置时,每一项都包括三个字段:参数名称、已指定的值及其缺省值。字段
之间以一个或多个制表符字符分隔。
以下值具有特殊含义:
■ - 表示未设置任何值
■ "" 表示值为空字符串
■ /- 表示值为-
■ /"" 表示值为""(两个双引号)
除了这些特殊值以外,输出中可能还会出现以下特殊字符:
■ /t 表示制表符
■ /n 表示换行
■ // 表示反斜杠
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
列出修补程序管理环境的配置设置。
■ 要列出所有设置,请键入:
# smpatch get
■ 要列出一个或多个参数的值,请键入:
1
2
使用命令行界面优化修补程序管理环境(任务图)
434 系统管理指南:基本管理• 2006 年7 月
# smpatch get parameter-name...
查看修补程序管理环境的配置设置
以下示例说明如何列出修补程序管理环境的所有配置设置。
# smpatch get patchpro.backout.directory
- "" patchpro.download.directory - /var/sadm/spool patchpro.install.types
- rebootafter:reconfigafter:standard patchpro.patch.source
- https://updateserver.sun.com/solaris/ patchpro.patchset
- patchdb patchpro.proxy.host - "" patchpro.proxy.passwd
**** **** patchpro.proxy.port - 8080 patchpro.proxy.user
- "" patchpro.sun.passwd **** **** patchpro.sun.user
- ""
以下示例说明如何列出patchpro.download.directory 和patchpro.patchset 参数的配
置设置。
# smpatch get patchpro.download.directory patchpro.patchset /var/sadm/spool
patchdb
▼ 如何更改修补程序应用策略(命令行)
如果要配置系统以便在更新操作期间应用某些非标准修补程序,则必须更改修补程序
应用策略。
缺省情况下,更新操作只能应用与standard、rebootafter 或reconfigafter 属性关联
的修补程序。
注意– 如果更改了缺省策略,Sun 不保证修补程序能正确应用于您的系统,或系统正常
运行。
有关修补程序应用策略的更多信息,请参见第415 页中的“自定义修补程序应用策略
”。
确定要在更新期间应用的非标准修补程序属性的类型。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定新的策略。
# smpatch set patchpro.install.types=patch-property
示例21–8
1
2
3
使用命令行界面优化修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 435
patch-property 是修补程序属性的列表,各属性之间用冒号(:) 进行分隔。有关有效修补
程序属性的列表,请参见第415 页中的“自定义修补程序应用策略”。
更改修补程序应用策略
本示例说明如何设置系统的策略。新的策略也包括为使修补程序生效而立即重新引导
系统所需的修补程序。
# smpatch set / patchpro.install.types=standard:rebootafter:reconfigafter:rebootimmediate
▼ 如果更改修补程序集(命令行)
可以选择根据不同的Sun 修补程序集(如建议的修补程序簇)来分析系统。缺省情况
下,可以使用修补程序集“所有可用的修补程序”。
从该Solaris 发行版开始,Sun 提供的修补程序集只有“所有可用的修补程序”和“建议
的修补程序簇”。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
指定要使用的修补程序集。
■ 要根据所有修补程序进行分析,请键入:
# smpatch set patchpro.patchset=patchdb
■ 要根据建议的修补程序进行分析,请键入:
# smpatch set patchpro.patchset=recommended
■ 要根据其他修补程序集进行分析,请键入:
# smpatch set patchpro.patchset=patch-set
▼ 如何更改目录位置(命令行)
PatchManager 配置为使用以下缺省位置存储修补程序相关数据:
■ 下载目录-从修补程序源下载修补程序时这些修补程序所在的存储目录。该位置也
是应用修补程序的目录。成功应用修补程序之前,修补程序始终位于此目录中。缺
省位置为/var/sadm/spool。
示例21–9
1
2
使用命令行界面优化修补程序管理环境(任务图)
436 系统管理指南:基本管理• 2006 年7 月
■ 卸载数据目录-可卸载修补程序的数据所在的存储目录。缺省情况下,卸载数据存
储在patchadd 所使用的缺省位置。此位置是已通过修补程序修改的每个软件包的
save 目录。例如,如果修补程序修改了SUNWcsr 软件包,则该修补程序的卸载数据
存储在/var/sadm/pkg/SUNWcsr/save 目录中。
如果已用完了缺省位置中的可用磁盘空间,请为这些目录指定不同的位置。
注– 如果指定了不同的目录,则必须手动创建该目录之后,才能执行所有修补程序操
作。
确定目录的新位置。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
为任何一个修补程序相关目录指定新的目录dir-name。
■ 要指定不同的下载目录,请键入:
# smpatch set patchpro.download.directory=dir-name
例如,其中dir-name 为/export/patches。
■ 要指定不同的卸载目录,请键入:
# smpatch set patchpro.backout.directory=dir-name
例如,其中dir-name 是/export/patches/backout。
▼ 如何将配置参数重置为缺省值(命令行)
必须明确重置参数值。不能使用smpatch 命令同时重置所有的参数值。
成为具有适当授权的用户,或者承担拥有软件安装配置文件或
solaris.admin.patchmgr.* 授权的角色。
系统管理员配置文件包括相应的配置文件。要创建角色并将其指定给用户,请参
见《系统管理指南:安全性服务》中的“配置RBAC”。
将修补程序管理环境的配置参数重置为其缺省值。
# smpatch unset parameter-name...
1
2
3
1
2
使用命令行界面优化修补程序管理环境(任务图)
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务) 437
将配置参数重置为缺省值。
以下示例说明如何将系统配置为从Sun 修补程序服务器(而不是其他的修补程序源)
获取修补程序。
# smpatch unset patchpro.patch.source
以下示例说明如何将修补程序下载目录和卸载目录位置重置为缺省值。
# smpatch unset patchpro.download.directory patchpro.backout.directory
PatchManager 疑难解答
本节介绍使用PatchManager 执行以下任务时可能遇到的常见问题:
■ 分析系统以确定适当修补程序的列表
■ 将修补程序下载到系统
■ 将修补程序应用于系统
PatchManager 一般错误
本节介绍一般的PatchManager 错误。
由于网络或服务器故障而无法更新修补程序
说明: 运行smpatch update 命令行时,将出现以下任何错误:
Cannot connect to retrieve patchdb: Connection refused
或:
Cannot connect to retrieve patchdb: Connection timed out
或:
Unknown host (host-name) connecting
to http://host-name/
原因: 此问题可能是由客户机与修补程序服务器之间的网络故障导致的,
或者修补程序服务器已关闭。
解决方法: 确保patchpro.patch.source 指向有效的修补程序源。
检查网络情况。
如果是系统与Sun 之间的问题,请等待问题解决。
示例21–10
PatchManager 疑难解答
438 系统管理指南:基本管理• 2006 年7 月
在远程模式下使用smpatch 时,SolarisWBEM服务不可用
说明: 在远程模式下运行smpatch 或尝试重新启动SolarisWBEM服务时,
将出现以下错误消息:
# smpatch analyze -u
root Authenticating as user: root Type /? for help, pressing
<enter> accepts the default denoted by [ ] Please enter a string value
for: password :: root-password There is no Solaris
Management Console Server running on pserver2. # /etc/init.d/init.wbem
status Solaris Management Console server not running on port 898.
# /etc/init.d/init.wbem start # /etc/init.d/init.wbem
status Solaris Management Console server not running on port 898.
解决方法: 重新启动SolarisWBEM服务之前,先将它们手动停止。
# /etc/init.d/init.wbem stop # /etc/init.d/init.wbem
start # /etc/init.d/init.wbem status Solaris
Management Console server version 2.1.0 running on port 898.
Solaris 10:不能初始化Java 虚拟机
说明: 运行任何smpatch 子命令时,都会看到以下错误消息:
# smpatch
analyze Error occurred during initialization of VM java.lang.Error:
Properties init: Could not determine current working directory.
解决方法: 更改目录并重试该命令。
# cd / # smpatch analyze
PatchManager 疑难解答
第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务)