Application Packaging Developer's Guide

Verifying the Integrity of a Package

The pkgchk command enables you to check the integrity of packages, whether they are installed on a system or in package format (ready to be installed with the pkgadd command). It confirms package structure or the installed files and directories, or displays information about package objects. The pkgchk command can list or check the following:

For more information about this command, refer to the pkgchk(1M) man page.

The pkgchk command performs two kinds of checks. It checks file attributes (the permissions and ownership of a file and major/minor numbers for block or character special devices) and the file contents (the size, checksum, and modification date). By default, the command checks both the file attributes and the file contents.

The pkgchk command also compares the file attributes and contents of the installed package against the installation software database. The entries concerning a package may have been changed since the time of installation; for example, another package may have changed a package component. The database reflects that change.

How to Verify the Integrity of Your Package

  1. Install your package.

    See "How to Install a Package on a Standalone or Server" or "How to Add a Package to a Diskless or AutoClient System's Root File System", if needed.

  2. Verify the integrity of your package.

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


    Lists files as they are processed. 

    -R root-path

    Specifies the location of the client system's root file system. 


    Is the name of one or more packages (separated by spaces) to be checked. If omitted, pkgchk checks all available packages.

Where to Go Next

If you are ready to go to the next task, see "How to Obtain Information With the pkginfo Command".

Example--Verifying the Integrity of a Package

This example shows the command you should use to verify the integrity of an installed package.

$ pkgchk pkg-abbrev

If there are errors, the pkgchk command prints them. Otherwise, it does not print anything and returns an exit code of 0. If you do not supply a package abbreviation, then it will check all of the packages on the system.

Alternately, you could use the -v option, which will print a list of files in the package if there are no errors. For example,

$ pkgchk -v SUNWcadap

If you need to verify a package that is installed on a client system's root file system, use this command:

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