应用程序包开发者指南

验证软件包的完整性

使用 pkgchk 命令可以检查软件包的完整性、它们是已经安装在系统上还是处于软件包格式(准备使用 pkgadd 命令安装)。它确认软件包结构或已安装的文件和目录,或者显示有关软件包对象的信息。pkgchk 命令可以列出或检查以下内容:

有关此命令的更多信息,请参阅 pkgchk(1M)

pkgchk 命令执行两种检查。它检查文件属性(文件的权限和拥有权以及块或字符特殊设备的主/从设备号)和文件内容(大小、校验和及修改日期)。缺省情况下,该命令同时检查文件属性和文件内容。

pkgchk 命令还将已安装的软件包的文件属性和内容与安装软件数据库进行比较。与软件包有关的条目自安装以来可能已经更改;例如,另一个软件包可能更改了软件包组件。数据库会反映该更改。

Procedure如何验证软件包的完整性

  1. 安装软件包。

    如果需要,请参见如何在独立系统或服务器上安装软件包

  2. 验证软件包的完整性。


    # pkgchk  [-v] [-R root-path] [pkg-abbrev...]

    -v

    在处理文件的过程中列出文件。 

    -R root-path

    指定客户机系统的根文件系统的位置。 

    pkg-abbrev

    要检查的一个或多个软件包的名称(以空格分隔)。如果省略,pkgchk 将检查所有可用的软件包。


示例 4–2 验证软件包的完整性

本示例演示应该用于验证已安装软件包的完整性的命令。


$ pkgchk pkg-abbrev
$

如果有错误,pkgchk 命令将列出这些错误。否则,它不会列出任何内容并且返回退出代码 0。如果您不提供软件包缩写,它将检查系统中的所有软件包。

此外,您还可以使用 -v 选项,该选项将在没有发生错误时列出软件包中文件的列表。例如:


$ pkgchk -v SUNWcadap
/opt/SUNWcadap
/opt/SUNWcadap/demo
/opt/SUNWcadap/demo/file1
/opt/SUNWcadap/lib
/opt/SUNWcadap/lib/file2
/opt/SUNWcadap/man
/opt/SUNWcadap/man/man1
/opt/SUNWcadap/man/man1/file3.1
/opt/SUNWcadap/man/man1/file4.1
/opt/SUNWcadap/man/windex
/opt/SUNWcadap/srcfiles
/opt/SUNWcadap/srcfiles/file5
/opt/SUNWcadap/srcfiles/file6
$

如果您需要验证客户机系统的根文件系统上安装的软件包,请使用以下命令:


$ pkgchk -v -R root-path pkg-abbrev

另请参见

如果您已准备好执行下一个任务,请参见如何使用 pkginfo 命令获取信息