【IT168 专稿】所有作为操作环境的一部分要安装的软件都包含在称为软件包(package)的压缩文件里。Solaris 10软件包提供了简单的方法将应用可执行程序、配置文件以及在其他系统上发布的文档集成在一起。除了Solaris 10软件包之外,Solaris 10还提供了标准的UNIx文档和压缩工具,例如Tar(磁带文档)和compress。在本文中我们将介绍如何使用标准的Solaris 10命令行界面(Command Line Interface,CLI)工具来管理软件包、显示包信息以及卸载软件包。
Solaris 10命令行界面(Command Line Interface,CLI)工具命令包括几个命令:
pkginfo 命令:用来列出有关已安装软件包的信息。
pkgadd 命令:用来添加和删除已签名的软件包;
pkgrm 命令:用来删除不需要的软件包。
pkgchk 命令:用来检验已安装软件包的完整性。
下面依次介绍。另外还包括两个不常用命令:
Pkgproto命令: 创建一个原理文件说明软件包中所包含的文件。
Pkgmk命令: 创建一个软件包目录。
一、 pkginfo命令的使用
可以使用 pkginfo 命令列出有关已安装软件包的信息。
1.pkginfo 命令格式:
pkginfo -d device [-x|1][options][pkg_name]
主要参数:
-q:安静的方式
-p:选择部分安装包
-i:选择全部安装包
-x:压缩列表
-l:长列表
-r:重新分配
-c :目录[目录...]
-a :结构
-v :版本
-d:软件包在的设备路径
pkg_name:软件包名称
2 命令实例
分页显示所有已经安装的软件包
使用命令即可:“pkginfo|more ”命令输出如图1 。
图1 分页显示所有已经安装的软件包
显示有关软件包的详细信息
使用命令即可:“pkginfo -l name ”。以下示例说明如何通过指定长格式列出系统上已安装的所有软件包,长格式中包括有关指定软件包的所有可用信息。pkginfo -l SUNWPython命令输出如下:
#pkginfo -l SUNWPython
PKGINST: SUNWPython
NAME: The Python interpreter, libraries and utilities
CATEGORY: GNOME2,application,JDS3
ARCH: i386
VERSION: 2.3.3,REV=10.0.3.2004.12.16.14.40
BASEDIR: /usr
VENDOR: Sun Microsystems, Inc.
DESC: The Python interpreter, libraries and utilities
PSTAMP: swanson20041216144036
INSTDATE: Oct 19 2006 13:13
HOTLINE: Please contact your local service provider
STATUS: 全部安装
FILES: 2468个 已安装的路径名
3 个共享的路径名
28 目录
106 可执行文件
58058 个已使用的块(近似)
pkginfo -l 输出包括以下信息
二、 使用pkgadd安装软件包
1 命令格式:pkgadd[-d[device|pathname]]pkg_name
主要参数:
pkg_name:软件包名称
-a admin-file :(可选)指定在安装期间应当由 pkgadd 命令检查的管理文件。有关使用管理文件的详细信息,请参见使用管理文件。
-d device :指定软件包的绝对路径。device-name 可以是设备、目录或假脱机目录的路径。如果未指定软件包所在的路径, pkgadd 命令将检查缺省的假脱机目录 (/var/spool/pkg)。如果软件包不在缺省的假脱机目录中,软件包的安装将失败。
pkgid :(可选)一个或多个要安装的软件包的名称,用空格分隔。如果省略,pkgadd 命令会从指定的设备、目录或假脱机目录安装所有可用的软件包。
2 为pkgadd设置代理服务器的方法
如果系统位于具有代理的防火墙之后,则需要首先设置代理服务器,然后才能使用 pkgadd 命令从 HTTP 服务器添加软件包。使用 http_proxy、HTTPPROXY 或 HTTPPROXYPORT 环境变量指定代理服务器。例如:
# setenv http_proxy http://mycache.domain:8080
或者指定以下内容之一:
# setenv HTTPPROXY mycache.domain
# setenv HTTPPROXYPORT 8080
然后,使用 pkgadd -a 命令标识管理文件。如:
# pkgadd -a /tmp/admin -d http://myserver.com/pkg SUNWpkg
3 添加光盘中的一个软件包
如添加Sun的SUNWpl5u软件包,首先使用上面介绍的命令查看一下:
#pkinfo -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWpl5u
然后使用pkgadd安装软件包
# pkgadd –d -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWpl5u
of <SUNWpl5u> was successful.
4 建立一个spool目录
为方便起见,可以将经常安装的软件包复制到假脱机目录中。如果将软件包复制到缺省的假脱机目录 (/var/spool/pkg) 中,那么,在使用 pkgadd 命令时无需指定软件包的源位置(-d device-name 参数)。缺省情况下,pkgadd 命令会检查在命令行上指定的软件包是否存在于 /var/spool/pkg 目录中。请注意,将软件包复制到假脱机目录中不同于在系统上安装软件包。
#pkgadd –d device-name –s spooldir pkgid
使用建立spool目录的方法,在客户机上安装SunWman软件包
#pkgadd –d /cdrom/cdrom0/s0/Solaris_10/Product –s /var/spool/pkg SunWman
在客户机上安装软件包命令:
#mount –F nfs –o ro package-server:/var/spool/pkg /mnt
5 安装一个第三方软件的详细步骤
Wget是GNU的一个免费的多线程下载软件,官方网址是:http://www.gnu.org/software/wget/ 。Wget支持HTTP, HTTPS和FTP协议,是一个非交互式的命令行工具,所以可以无需借助X-windows就能够从多种脚本语言、cron tabs、终端窗口中调用。Wget的最新版本是1.10.2,Solaris 10 Sparc版本的安装包是wget-1.10.2-sol10-sparc-local.gz,Solaris 10 x86版本的安装包是wget-1.10.2-sol10-x86-local.gz,下载后的安装步骤如下(以下X86版本为例。)
解压缩
#gzip -d ./ wget-1.10.2-sol10-x86-local.gz
安装命令:
#pkgadd -d ./ wget-1.10.2-sol10-x86-local.gz
默认安装路径是/,首先系统提示是否安装,如图2 。
图2首先系统提示是否安装
选择all或者确省配置开始安装,系统提示是否建立/usr/local/目录,选择y 继续,如图3 。
图3系统提示是否建立/usr/local/目录
如果出现图4 界面表示安装成功。
图4 安装成功界面
6从 HTTP URL 安装软件包
以下示例说明如何使用 HTTP URL 作为设备名称来安装软件包。该 URL 必须指向流格式的软件包。
# pkgadd -d http://install/xf86-4.3.0-video.pkg
7 pkgadd应用说明
如果 pkgadd 命令在软件包安装期间遇到问题,则会在该提示符后面显示一则与该问题有关的消息: “Do you want to continue with this installation? ”可以回答 yes、no 或 quit。如果指定了多个软件包,请键入 no 停止安装正在安装的软件包。pkgadd 命令会继续安装其他软件包。键入 quit 可停止安装。
三、 pkgchk命令的使用
1 命令格式:pkgchk[-lacvp path1[path2…]]
主要参数:
-a :指定仅审计文件属性(权限),而不是像缺省情况下那样既审计文件属性又审计文件内容。
-c:指定仅审计文件内容,而不是像缺省情况下那样既审计文件内容又审计文件属性。
-v:指定详细模式,该模式会显示正在处理的文件的名称。
-d spooldir :指定假脱机目录的绝对路径。
pkgid :(可选)一个或多个软件包的名称,用空格分隔。如果未指定 pkgid,则会检查系统上已安装的所有软件包。
2 命令实例1
以下示例说明如何检查软件包的内容。
# pkgchk -c SUNWbash
如果未出现错误,将返回系统提示符。否则, pkgchk 命令将报告错误。
3 检查已安装对象的完整性
使用新的 -P 选项,可以指定部分路径。添加此选项有助于将文件映射到软件包。将此选项与 -l 选项结合使用,可以列出有关包含部分路径的文件的信息。使用 -p 选项,可以通过指定全路径来检查已安装对象的完整性。
要通过指定一个或多个全路径名来检验已安装对象的完整性,使用命令:
# pkgchk -lp path-name
要使用部分路径名(可以是一个或多个)来检验已安装对象的完整性,使用命令:
# pkgchk -lP partial-path-name
-p path :仅检查所列出的一个或多个路径名是否正确。路径可以是一个或多个用逗号分隔的路径名。指定仅审计文件属性(权限),而不是像缺省情况下那样既审计文件属性又审计文件内容。
-P partial-path :仅检查所列出的一个或多个部分路径名是否正确。 部分路径可以是一个或多个用逗号分隔的部分路径名。它可匹配任何包含特定字符串(即部分路径中所包含的字符串)的路径名。指定仅审计文件内容,而不是像缺省情况下那样既审计文件内容又审计文件属性。
-l :列出有关构成软件包的选定文件的信息。此选项与 -a、-c、-f、-g 和 -v 选项不兼容。指定详细模式,该模式会显示正在处理的文件的名称。
4 命令实例2 :
使用 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): 189448
Expected sum(1) of contents: 25716
Expected last modification: 12月 07 10时±00•47秒 2005
Referenced by the following packages:
SUNWpkgcmdsu
Current status: installed
四、 使用pkgrm命令删除软件包
1命令格式:pkgrm package_name
package_name 即软件包名称。
2 命令实例1
如果希望删除刚刚安装wget 可以使用命令:
# pkgrm SMCwget
首先系统提示是否删除,选择y 即可删除。
如果出现图5 界面表示删除成功。
图5删除成功界面
3 命令实例2
以下示例说明如何删除假脱机软件包。
# 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>
4 应用说明:
要删除或卸载软件包,请使用添加或安装软件包时所使用的相关工具。例如,如果软件是使用 Solaris 安装程序 GUI 安装的,请使用 Solaris 安装程序 GUI 卸载软件。请勿使用 传统的Unix 命令rm 删除软件包,否则将导致用来跟踪系统上所有已安装软件包的数据库不准确。
本文总结:本文中我们将介绍如何使用标准的Solaris 10命令行界面(Command Line Interface,CLI)工具来管理软件包、显示包信息以及卸载软件包。和GUI方式相比CLI命令更加快速和适合远程操作。