jacky.lee 发表于 2008-02-22 10:38

用软件包命令管理Solaris软件系统

用软件包命令管理Solaris软件系统

    所有作为操作环境的一部分要安装的软件都包含在称为软件包(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]
  主要参数:
  -q:安静的方式
  -p:选择部分安装包
  -i:选择全部安装包
  -x:压缩列表
  -l:长列表
  -r:重新分配
  -c :目录[目录……]
  -a :结构
  -v :版本
  -d:软件包在的设备路径
  pkg_name:软件包名称
2 命令实例
  * 分页显示所有已经安装的软件包
  使用命令即可:“pkginfo|more ”命令输出如图1 .
http://blogimg.chinaunix.net/blog/upfile2/080222103209.jpg
图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 输出包括以下信息
http://blogimg.chinaunix.net/blog/upfile2/080222103305.jpg
二、 使用pkgadd安装软件包
  1 命令格式:pkgadd[-d]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
  ofwas 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 .
http://blogimg.chinaunix.net/blog/upfile2/080222103413.jpg
图2首先系统提示是否安装
  选择all或者确省配置开始安装,系统提示是否建立/usr/local/目录,选择y 继续,如图3 .
http://blogimg.chinaunix.net/blog/upfile2/080222103455.jpg
图3系统提示是否建立/usr/local/目录
  如果出现图4 界面表示安装成功。
http://blogimg.chinaunix.net/blog/upfile2/080222103533.jpg
图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]
  主要参数:
  -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 界面表示删除成功。
http://blogimg.chinaunix.net/blog/upfile2/080222103718.jpg
图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
  4 应用说明:
  要删除或卸载软件包,请使用添加或安装软件包时所使用的相关工具。例如,如果软件是使用 Solaris 安装程序 GUI 安装的,请使用 Solaris 安装程序 GUI 卸载软件。请勿使用 传统的Unix 命令rm 删除软件包,否则将导致用来跟踪系统上所有已安装软件包的数据库不准确。
  本文总结:本文中我们将介绍如何使用标准的Solaris 10命令行界面(Command Line Interface,CLI)工具来管理软件包、显示包信息以及卸载软件包。和GUI方式相比CLI命令更加快速和适合远程操作。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/36549/showart_482141.html
页: [1]
查看完整版本: 用软件包命令管理Solaris软件系统