跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:基本管理 Oracle Solaris 10 1/13 Information Library (简体中文) |
2. 使用 Solaris Management Console(任务)
3. 使用 Oracle Java Web Console(任务)
11. 修改 Oracle Solaris 引导行为(任务)
13. 管理 Oracle Solaris 引导归档文件(任务)
14. Oracle Solaris 系统引导的故障排除(任务)
17. 使用 Oracle Configuration Manager
21. 使用 Oracle Solaris 系统管理工具管理软件(任务)
下列过程介绍如何使用软件包命令管理软件包。
角色包含授权和具有特权的命令。有关角色的更多信息,请参见《System Administration Guide: Security Services》中的"Configuring RBAC (Task Map)"。
该步骤可确保系统对于已添加和删除的软件保留正确的记录。有时,您可能希望在系统上维护同一应用程序的多个版本。有关维护多个软件副本的策略,请参见删除软件包的原则 (pkgrm)。有关任务的信息,请参见如何删除软件包 (pkgrm)。
# pkgadd -a admin-file -d device-name pkgid ...
(可选)指定在安装期间应当由 pkgadd 命令检查的管理文件。有关使用管理文件的详细信息,请参见使用管理文件。
指定软件包的绝对路径。device-name 可以是设备、目录或假脱机目录的路径。如果未指定软件包所在的路径, pkgadd 命令将检查缺省的假脱机目录 (/var/spool/pkg )。如果软件包不在缺省的假脱机目录中,软件包的安装将失败。
(可选)一个或多个要安装的软件包的名称,用空格分隔。如果省略,pkgadd 命令会从指定的设备、目录或假脱机目录安装所有可用的软件包。
如果 pkgadd 命令在软件包安装期间遇到问题,则会在该提示符后面显示一则与该问题有关的消息:
Do you want to continue with this installation?
可以回答 yes、no 或 quit。如果指定了多个软件包,请键入 no 停止安装正在安装的软件包。pkgadd 命令会继续安装其他软件包。键入 quit 可停止安装。
# pkgchk -v pkgid
如果未出现错误,则会返回已安装文件的列表。否则,pkgchk 命令将报告错误。
示例 22-1 从已挂载 CD 添加软件包
以下示例说明如何从已挂载的 Oracle Solaris 10 CD 安装 SUNWpl5u 软件包。还说明如何检验软件包文件是否已正确安装。
# pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWpl5u . . . Installation of <SUNWpl5u> was successful. # pkgchk -v SUNWpl5u /usr /usr/bin /usr/bin/perl /usr/perl5 /usr/perl5/5.8.4 . . .
此示例说明当运行的不是 Solaris 10 10/08 发行版或更高版本时所要使用的路径。
# pkgadd -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWpl5u . . . Installation of <SUNWpl5u> was successful. # pkgchk -v SUNWpl5u /usr /usr/bin /usr/bin/perl /usr/perl5 /usr/perl5/5.8.4 . . .
示例 22-2 从远程软件包服务器安装软件包
如果要安装的软件包位于远程系统上,则可以(以软件包格式)手动挂载包含该软件包的目录,并在本地系统上安装软件包。
以下示例说明如何从远程系统安装软件包。在本示例中,假设名为 package-server 的远程系统的 /latest-packages 目录中有软件包。mount 命令用来在 /mnt 上以本地方式挂载软件包。pkgadd 命令用来安装 SUNWpl5u 软件包。
# mount -F nfs -o ro package-server:/latest-packages /mnt # pkgadd -d /mnt SUNWpl5u . . . Installation of <SUNWpl5u> was successful.
如果站点上运行的是自动安装程序,则无需手动挂载远程软件包服务器,而会使用自动安装程序路径(在本示例中为 /net/package-server/latest-packages)作为 -d 选项的参数。
# pkgadd -d /net/package-server/latest-packages SUNWpl5u . . . Installation of <SUNWpl5u> was successful.
示例 22-3 通过指定管理文件从远程软件包服务器安装软件包
以下示例与上面的示例相似,区别在于本示例使用 -a 选项并指定了一个名为 noask-pkgadd 的管理文件,在添加软件包时避免用户交互 (pkgadd)中对此进行了说明。在本示例中,假设 noask-pkgadd 管理文件位于缺省位置 (/var/sadm/install/admin)。
# pkgadd -a noask-pkgadd -d /net/package-server/latest-packages SUNWpl5u . . . Installation of <SUNWpl5u> was successful.
示例 22-4 从 HTTP URL 安装软件包
以下示例说明如何使用 HTTP URL 作为设备名称来安装软件包。该 URL 必须指向流格式的软件包。
# pkgadd -d http://install/xf86-4.3.0-video.pkg ## Downloading... ..............25%..............50%..............75%..............100% ## Download Complete The following packages are available: 1 SUNWxf86r XFree86 Driver Porting Kit (Root) (i386) 4.3.0,REV=0.2003.02.28 2 SUNWxf86u XFree86 Driver Porting Kit (User) (i386) 4.3.0,REV=0.2003.02.28 . . .
为方便起见,可以将经常安装的软件包复制到假脱机目录中。如果将软件包复制到缺省的假脱机目录 (/var/spool/pkg) 中,那么,在使用 pkgadd 命令时无需指定软件包的源位置(-d device-name 参数)。缺省情况下,pkgadd 命令会检查在命令行上指定的软件包是否存在于 /var/spool/pkg 目录中。请注意,将软件包复制到假脱机目录中不同于在系统上安装软件包。
角色包含授权和具有特权的命令。有关角色的更多信息,请参见《System Administration Guide: Security Services》中的"Configuring RBAC (Task Map)"。
有关删除假脱机软件包的信息,请参见示例 22-16。
# pkgadd -d device-name -s spooldir pkgid ...
指定软件包的绝对路径。device-name 可以是设备、目录或假脱机目录的路径。
指定该软件包进行假脱机的假脱机目录名称。必须指定 spooldir。
(可选)要添加到假脱机目录中的一个或多个软件包的名称,用空格分隔。如果省略,pkgadd 命令将复制所有可用的软件包。
$ pkginfo -d spooldir | grep pkgid
如果 pkgid 已正确复制,pkginfo 命令将返回一行与 pkgid 相关的信息。否则,pkginfo 命令将返回系统提示符。
示例 22-5 从已挂载 CD 设置假脱机目录
以下示例说明如何将 SUNWman 软件包从基于 SPARC 的已挂载 Oracle Solaris 10 CD 传送到缺省的假脱机目录 (/var/spool/pkg)。
# pkgadd -d /cdrom/cdrom0/Solaris_10/Product -s /var/spool/pkg SUNWman Transferring <SUNWman> package instance
示例 22-6 从远程软件包服务器设置假脱机目录
如果要复制的软件包位于远程系统上,则可以(以软件包格式)手动挂载包含该软件包的目录,并将它们复制到本地的假脱机目录中。
以下示例说明了此方案中使用的命令。在本示例中,假设名为 package-server 的远程系统的 /latest-packages 目录中有软件包。mount 命令用来在 /mnt 上以本地方式挂载软件包目录。pkgadd 命令用来将 SUNWpl5p 软件包从 /mnt 复制到缺省的假脱机目录 (/var/spool/pkg)。
# mount -F nfs -o ro package-server:/latest-packages /mnt # pkgadd -d /mnt -s /var/spool/pkg SUNWpl5p Transferring <SUNWpl5p> package instance
如果站点上运行的是自动安装程序,则不必手动挂载远程软件包服务器,而会使用自动安装程序路径(在本示例中为 /net/package-server/latest-packages)作为 -d 选项的参数。
# pkgadd -d /net/package-server/latest-packages -s /var/spool/pkg SUNWpl5p Transferring <SUNWpl5p> package instance
示例 22-7 从缺省的假脱机目录安装软件包
以下示例说明如何从缺省的假脱机目录安装 SUNWpl5p 软件包。如果不使用任何选项,pkgadd 命令将在 /var/spool/pkg 目录中搜索已命名的软件包。
# pkgadd SUNWpl5p . . . Installation of <SUNWpl5p> was successful.
示例 22-8 列出已安装的软件包
以下示例说明如何列出本地系统上安装的所有软件包,无论本地系统是独立系统还是服务器。输出中显示了主类别、软件包名称和软件包的说明。
$ pkginfo system SUNWaccr System Accounting, (Root) system SUNWaccu System Accounting, (Usr) system SUNWadmap System administration applications system SUNWadmc System administration core libraries . . .
示例 22-9 显示有关软件包的详细信息
以下示例说明如何通过指定长格式列出系统上已安装的所有软件包,长格式中包括有关指定软件包的所有可用信息。
$ pkginfo -l SUNWcar PKGINST: SUNWcar NAME: Core Architecture, (Root) CATEGORY: system ARCH: i386.i86pc VERSION: 11.10.0,REV=2005.01.21.16.34 BASEDIR: / VENDOR: Oracle Corporation DESC: core software for a specific hardware platform group PSTAMP: on10ptchfeatx20110211045100 INSTDATE: Mar 03 2011 10:57 HOTLINE: Please contact your local service provider STATUS: completely installed FILES: 2 installed pathnames 2 shared pathnames 2 directories
角色包含授权和具有特权的命令。有关角色的更多信息,请参见《System Administration Guide: Security Services》中的"Configuring RBAC (Task Map)"。
要检查文件的属性和内容,请键入以下命令:
# pkgchk -a| -c -v pkid ...
要指定假脱机目录的绝对路径,请键入以下命令:
# pkgchk -d spooldir pkgid ...
指定仅审计文件属性(权限),而不是像缺省情况下那样既审计文件属性又审计文件内容。
指定仅审计文件内容,而不是像缺省情况下那样既审计文件内容又审计文件属性。
指定详细模式,该模式会显示正在处理的文件的名称。
指定假脱机目录的绝对路径。
(可选)一个或多个软件包的名称,用空格分隔。如果未指定 pkgid,则会检查系统上已安装的所有软件包。
示例 22-10 检查已安装软件包的内容
以下示例说明如何检查软件包的内容。
# pkgchk -c SUNWbash
如果未出现错误,将返回系统提示符。否则,pkgck 命令将报告错误。
示例 22-11 检查已安装软件包的文件属性
# pkgchk -a SUNWbash
如果未出现错误,将返回系统提示符。否则,pkgck 命令将报告错误。
示例 22-12 检查已在假脱机目录中安装的软件包
以下示例说明如何检查已复制到假脱机目录 (/export/install/packages) 中的软件包。
# pkgchk -d /export/install/packages ## checking spooled package <SUNWadmap> ## checking spooled package <SUNWadmfw> ## checking spooled package <SUNWadmc> ## checking spooled package <SUNWsadml>
对于假脱机软件包的检查有一定的限制,因为并非所有的信息都可以在未安装软件包的情况下进行审计。
以下过程介绍如何使用 pkgchk 命令检查已安装对象的完整性。使用新的 -P 选项,可以指定部分路径。添加此选项有助于将文件映射到软件包。将该选项与 -l 选项一起使用,可以列出包含部分路径的所有文件的信息。使用 -p 选项,可以通过指定全路径来检查已安装对象的完整性。有关更多信息,请参见 pkgchk(1M) 手册页。
角色包含授权和具有特权的命令。有关角色的更多信息,请参见《System Administration Guide: Security Services》中的"Configuring RBAC (Task Map)"。
要通过指定一个或多个完整路径名来检验已安装对象的完整性,请键入以下命令:
# pkgchk -lp path-name
要使用部分路径名(可以是一个或多个)来检验已安装对象的完整性,请键入以下命令:
# pkgchk -lP partial-path-name
仅检查所列出的一个或多个路径名是否正确。路径可以是一个或多个用逗号分隔的路径名。指定仅审计文件属性(权限),而不是像缺省情况下那样既审计文件属性又审计文件内容。
仅检查所列出的一个或多个部分路径名是否正确。部分路径可以是一个或多个用逗号分隔的部分路径名。它可匹配任何包含特定字符串(即部分路径中所包含的字符串)的路径名。指定仅审计文件内容,而不是像缺省情况下那样既审计文件内容又审计文件属性。
列出有关构成软件包的选定文件的信息。此选项与 -a、-c、-f、-g 和 -v 选项不兼容。指定详细模式,该模式会显示正在处理的文件的名称。
示例 22-13 通过指定完整路径名检查已安装对象的完整性
以下示例说明如何使用 pkgchk -lp 命令,通过指定完整路径名来检查文件系统上对象的内容/属性。-l 选项列出了有关构成软件包的选定文件的信息。
# pkgchk -lp /usr/sbin/pkgadd Pathname: /usr/sbin/pkgadd Type: regular file Expected mode: 0555 Expected owner: root Expected group: sys Expected file size (bytes): 867152 Expected sum(1) of contents: 45580 Expected last modification: Jul 02 02:20:34 2004 Referenced by the following packages: SUNWpkgcmdsu Current status: installed
示例 22-14 通过指定部分路径名检查已安装对象的完整性
以下示例说明如何使用 pkgchk -lP 命令,通过指定部分路径名(如文件名或目录名)来检查文件系统上对象的内容/属性。-l 选项列出了有关构成软件包的选定文件的信息。
# pkgchk -lP /sbin/pkgadd Pathname: /usr/sbin/pkgadd Type: regular file Expected mode: 0555 Expected owner: root Expected group: sys Expected file size (bytes): 867152 Expected sum(1) of contents: 45580 Expected last modification: Jul 02 02:20:34 2004 Referenced by the following packages: SUNWpkgcmdsu Current status: installed Pathname: /usr/sbin/pkgask Type: linked file Source of link: ../../usr/sbin/pkgadd Referenced by the following packages: SUNWpkgcmdsu Current status: installed
要删除或卸载软件包,请使用添加或安装软件包时所使用的相关工具。例如,如果软件是使用 Oracle Solaris 安装程序 GUI 安装的,请使用 Oracle Solaris 安装程序 GUI 卸载软件。
注意 - 请勿使用 rm 命令删除软件包。否则将导致用来跟踪系统上所有已安装软件包的数据库不准确。 |
角色包含授权和具有特权的命令。有关角色的更多信息,请参见《System Administration Guide: Security Services》中的"Configuring RBAC (Task Map)"。
# pkgrm pkgid ...
pkgid 标识一个或多个要删除的软件包的名称,用空格分隔。如果省略,pkgrm 命令将删除所有可用的软件包。
示例 22-15 删除软件包
以下示例说明如何删除软件包。
# pkgrm SUNWctu The following package is currently installed: SUNWctu Netra ct usr/platform links (64-bit) (sparc.sun4u) 11.9.0,REV=2001.07.24.15.53 Do you want to remove this package? y ## Removing installed package instance <SUNWctu> ## Verifying package dependencies. ## Processing package information. ## Removing pathnames in class <none> . . .
示例 22-16 删除假脱机软件包
以下示例说明如何删除假脱机软件包。
# pkgrm -s /export/pkg SUNWaudh The following package is currently spooled: SUNWaudh Audio Header Files (sparc) 11.10.0,REV=2003.08.08.00.03 Do you want to remove this package? y Removing spooled package instance <SUNWaudh>
要列出某个软件包的依赖软件包,请使用 pkgdep 命令。该命令的语法如下:
# pkgdep package-name
以下示例说明了如何列出 SUNWzsh 软件包的依赖软件包。
示例 22-17 列出依赖软件包
# pkgdep SUNWzsh SUNWcar SUNWcsd SUNWcsl SUNWcsr SUNWcsu SUNWkvm
有关可以随 pkgdep 命令指定的选项的信息,请参见 pkgdep(1M) 手册页。