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 pkgchk(1M).

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.

ProcedureHow to Verify the Integrity of a Package

  1. Install your package.

    See How to Install a Package on a Standalone System or Server, if needed.

  2. Verify the integrity of your package.


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

    -v

    Lists files as they are processed. 

    -R root-path

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

    pkg-abbrev

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


Example 4–2 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
/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
$

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

See Also

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