管理软件包的工具
管理软件包的工具或命令
工具或命令 |
说明 |
手册页 |
installer |
启动用于从 Oracle Solaris 安装介质添加软件的安装程序(如 Oracle Solaris 安装程序 GUI)。安装程序要么位于本地,要么位于远程位置。 |
installer(1M) |
prodreg (GUI) |
启动用于添加、删除或显示软件产品信息的安装程序。使用 Oracle Solaris 产品注册表删除或显示软件产品的有关信息,这些软件产品最初通过使用 Oracle Solaris 安装程序 GUI 或 pkgadd 命令安装。 |
prodreg(1M) |
Oracle Solaris 产品注册表 prodreg 查看器 (CLI) |
使用 prodreg 命令删除或显示软件产品的有关信息,这些软件产品最初通过使用 Oracle Solaris 安装程序 GUI 或 pkgadd 命令安装。 |
prodreg(1M) |
pkgadd |
安装软件包。 |
pkgadd(1M) |
pkgchk |
检查软件包的安装情况。 |
pkgchk(1M) |
pkginfo |
列出软件包信息。 |
pkginfo(1) |
pkgparam |
显示软件包的参数值。 |
pkgparam(1) |
pkgrm |
删除软件包。 |
pkgrm(1M) |
pkgtrans |
将可安装的软件包从一种格式转换为另一种格式。-g 选项指示 pkgtrans 命令在所得到的数据流中生成和存储签名。 |
pkgtrans(1) |
向系统中添加软件包。
# pkgadd -a admin-file
-d device-name pkgid ...
-a admin-file
(可选)指定在安装期间应当由 pkgadd 命令检查的管理文件。有关使用管理文件的详细信息,请参见使用管理文件。
-d device-name
指定软件包的绝对路径。device-name 可以是设备、目录或假脱机目录的路径。如果未指定软件包所在的路径, pkgadd 命令将检查缺省的假脱机目录 (/var/spool/pkg )。如果软件包不在缺省的假脱机目录中,软件包的安装将失败。
pkgid
(可选)一个或多个要安装的软件包的名称,用空格分隔。如果省略,pkgadd 命令会从指定的设备、目录或假脱机目录安装所有可用的软件包。
如果 pkgadd 命令在软件包安装期间遇到问题,则会在该提示符后面显示一则与该问题有关的消息:
Do you want to continue with this installation?
可以回答 yes、no 或 quit。如果指定了多个软件包,请键入 no 停止安装正在安装的软件包。pkgadd 命令会继续安装其他软件包。键入 quit 可停止安装。
检验软件包是否已成功安装。
# pkgchk -v pkgid
如果未出现错误,则会返回已安装文件的列表。否则,pkgchk 命令将报告错误。
从已挂载 CD 添加软件包
以下示例说明如何从已挂载的 Oracle Solaris 10 CD 安装 SUNWpl5u 软件包。还说明如何检验软件包文件是否已正确安装。
# pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWpl5u
.
.
.
Installation of
# pkgchk -v SUNWpl5u
/usr
/usr/bin
/usr/bin/perl
/usr/perl5
/usr/perl5/5.8.4
.
.
从远程软件包服务器安装软件包
如果要安装的软件包位于远程系统上,则可以(以软件包格式)手动挂载包含该软件包的目录,并在本地系统上安装软件包。
以下示例说明如何从远程系统安装软件包。在本示例中,假设名为 package-server 的远程系统的 /latest-packages 目录中有软件包。mount 命令用来在 /mnt 上以本地方式挂载软件包。pkgadd 命令用来安装 SUNWpl5u 软件包。
# mount -F nfs -o ro package-server:/latest-packages /mnt
# pkgadd -d /mnt SUNWpl5u
.
.
.
Installation of
如果站点上运行的是自动安装程序,则无需手动挂载远程软件包服务器,而会使用自动安装程序路径(在本示例中为 /net/package-server/latest-packages)作为 -d 选项的参数。
# pkgadd -d /net/package-server/latest-packages SUNWpl5u
.
.
.
Installation of
通过指定管理文件从远程软件包服务器安装软件包
以下示例与上面的示例相似,区别在于本示例使用 -a 选项并指定了一个名为 noask-pkgadd 的管理文件,在添加软件包时避免用户交互 (pkgadd)中对此进行了说明。在本示例中,假设 noask-pkgadd 管理文件位于缺省位置 (/var/sadm/install/admin)。
# pkgadd -a noask-pkgadd -d /net/package-server/latest-packages SUNWpl5u
.
.
.
Installation of
从 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
.
.
.
将软件包添加到假脱机目录中 (pkgadd)
将软件包添加到假脱机目录中。
# pkgadd -d device-name
-s spooldir pkgid ...
-d device-name
指定软件包的绝对路径。device-name 可以是设备、目录或假脱机目录的路径。
-s spooldir
指定该软件包进行假脱机的假脱机目录名称。必须指定 spooldir。
pkgid
(可选)要添加到假脱机目录中的一个或多个软件包的名称,用空格分隔。如果省略,pkgadd 命令将复制所有可用的软件包。
检验软件包是否已成功复制到假脱机目录中。
$ pkginfo -d spooldir
| grep pkgid
如果 pkgid 已正确复制,pkginfo 命令将返回一行与 pkgid 相关的信息。否则,pkginfo 命令将返回系统提示符。
从已挂载 CD 设置假脱机目录
以下示例说明如何将 SUNWman 软件包从基于 SPARC 的已挂载 Oracle Solaris 10 CD 传送到缺省的假脱机目录 (/var/spool/pkg)。
# pkgadd -d /cdrom/cdrom0/Solaris_10/Product -s /var/spool/pkg SUNWman
Transferring
从远程软件包服务器设置假脱机目录
如果要复制的软件包位于远程系统上,则可以(以软件包格式)手动挂载包含该软件包的目录,并将它们复制到本地的假脱机目录中。
以下示例说明了此方案中使用的命令。在本示例中,假设名为 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
如果站点上运行的是自动安装程序,则不必手动挂载远程软件包服务器,而会使用自动安装程序路径(在本示例中为 /net/package-server/latest-packages)作为 -d 选项的参数。
# pkgadd -d /net/package-server/latest-packages -s /var/spool/pkg SUNWpl5p
Transferring
从缺省的假脱机目录安装软件包
以下示例说明如何从缺省的假脱机目录安装 SUNWpl5p 软件包。如果不使用任何选项,pkgadd 命令将在 /var/spool/pkg 目录中搜索已命名的软件包。
# pkgadd SUNWpl5p
.
.
.
Installation of
列出有关所有已安装软件包的信息 (pkginfo)
列出已安装的软件包
以下示例说明如何列出本地系统上安装的所有软件包,无论本地系统是独立系统还是服务器。输出中显示了主类别、软件包名称和软件包的说明。
$ pkginfo
system SUNWaccr System Accounting, (Root)
system SUNWaccu System Accounting, (Usr)
system SUNWadmap System administration applications
system SUNWadmc System administration core libraries
.
.
.
显示有关软件包的详细信息
以下示例说明如何通过指定长格式列出系统上已安装的所有软件包,长格式中包括有关指定软件包的所有可用信息。
$ 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
检查已安装软件包的完整性 (pkgchk)
检查已安装软件包的状态。
要检查文件的属性和内容,请键入以下命令:
# pkgchk -a| -c -v pkid ...
要指定假脱机目录的绝对路径,请键入以下命令:
# pkgchk -d spooldir pkgid ...
-a
指定仅审计文件属性(权限),而不是像缺省情况下那样既审计文件属性又审计文件内容。
-c
指定仅审计文件内容,而不是像缺省情况下那样既审计文件内容又审计文件属性。
-v
指定详细模式,该模式会显示正在处理的文件的名称。
-d spooldir
指定假脱机目录的绝对路径。
pkgid
(可选)一个或多个软件包的名称,用空格分隔。如果未指定 pkgid,则会检查系统上已安装的所有软件包。
检查已安装软件包的内容
以下示例说明如何检查软件包的内容。
# pkgchk -c SUNWbash
如果未出现错误,将返回系统提示符。否则,pkgck 命令将报告错误。
检查已安装软件包的文件属性
以下示例说明如何检查软件包的文件属性。
# pkgchk -a SUNWbash
如果未出现错误,将返回系统提示符。否则,pkgck 命令将报告错误。
检查已在假脱机目录中安装的软件包
以下示例说明如何检查已复制到假脱机目录 (/export/install/packages) 中的软件包。
# pkgchk -d /export/install/packages
## checking spooled package
## checking spooled package
## checking spooled package
## checking spooled package
对于假脱机软件包的检查有一定的限制,因为并非所有的信息都可以在未安装软件包的情况下进行审计
检查已安装对象的完整性 ( pkgchk -p, pkgchk -P)
检查已安装对象的完整性。
要通过指定一个或多个完整路径名来检验已安装对象的完整性,请键入以下命令:
# pkgchk -lp path-name
要使用部分路径名(可以是一个或多个)来检验已安装对象的完整性,请键入以下命令:
# pkgchk -lP partial-path-name
-p path
仅检查所列出的一个或多个路径名是否正确。路径可以是一个或多个用逗号分隔的路径名。指定仅审计文件属性(权限),而不是像缺省情况下那样既审计文件属性又审计文件内容。
-P partial-path
仅检查所列出的一个或多个部分路径名是否正确。部分路径可以是一个或多个用逗号分隔的部分路径名。它可匹配任何包含特定字符串(即部分路径中所包含的字符串)的路径名。指定仅审计文件内容,而不是像缺省情况下那样既审计文件内容又审计文件属性。
-l
列出有关构成软件包的选定文件的信息。此选项与 -a、-c、-f、-g 和 -v 选项不兼容。指定详细模式,该模式会显示正在处理的文件的名称。
通过指定完整路径名检查已安装对象的完整性
以下示例说明如何使用 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
通过指定部分路径名检查已安装对象的完整性
以下示例说明如何使用 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
删除软件包
删除已安装的软件包。
# pkgrm pkgid ...
pkgid 标识一个或多个要删除的软件包的名称,用空格分隔。如果省略,pkgrm 命令将删除所有可用的软件包。
删除软件包
以下示例说明如何删除软件包。
# 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
## Verifying package dependencies.
## Processing package information.
## Removing pathnames in class
.
.
.
删除假脱机软件包
以下示例说明如何删除假脱机软件包。
# 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
列出软件包的依赖软件包
要列出某个软件包的依赖软件包,请使用 pkgdep 命令。该命令的语法如下:
# pkgdep package-name
列出依赖软件包
# pkgdep SUNWzsh
SUNWcar
SUNWcsd
SUNWcsl
SUNWcsr
SUNWcsu
SUNWkvm