ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



pkgutil(1)                BSD General Commands Manual               pkgutil(1)

NAME
     pkgutil -- Query and manipulate the installer package receipt database.

SYNOPSIS
     pkgutil [options] [commands]

DESCRIPTION
     pkgutil reads and manipulates the Installer's receipt database and flat packages.  pkgutil can be used
     to learn about flat packages, including installation date, location, and which files were or will be
     installed.  Options are processed first, and affect the operation of all commands.  Multiple commands
     are performed sequentially in the given order.

OPTIONS
     --help, -h  A brief summary of commands and usage.

     --force, -f
                 Don't ask for confirmation before performing a potentially destructive or ambiguous opera-tion. operation.
                 tion.

     --verbose, -v
                 Output in a "human-readable" format with extra headers, footers, indentation, and other
                 contextual information.

     --debug     Print implementation details and other useless information while running.

     --volume path
                 Perform all operations on the specified volume or home directory.  The root volume '/' will
                 be used if unspecified.

     --edit-pkg package-id
                 Specifies an existing receipt to be modified in-place by --learn.

     --only-files
                 List only files (not directories) in --files listing.

     --only-dirs
                 List only directories (not files) in --files listing.

     --regexp    Try to match package-id arguments as a regular expression if an exact match isn't found.
                 See egrep(1) and re_format(7) for syntax.

DATABASE COMMANDS
     --packages, --pkgs
                 List all installed package IDs on the specified --volume.

     --pkgs-plist
                 List all installed package IDs on the specified --volume in Mac OS X plist(5) format.

     --pkgs=REGEXP
                 List all installed package IDs matching REGEXP on the specified --volume.  The equal sign
                 (=) is required or the search string will be ignored and all package IDs will be returned.
                 Be mindful of escaping characters in both your shell and the regular expression.  (Eg,
                 'pkgutil --pkgs=\\.D' searches for package IDs matching the literal '.D' after escaping the
                 backslash from your shell and then the dot from the regex to make it literal.) Regular
                 expressions are more complex than simple shell globbing. A dot (.) matches any character,
                 while '*' matches zero or more of the previous character. See re_format(7) for a complete
                 description of the syntax.

     --files package-id
                 List all of the files managed under the package-id.  This list will include files installed
                 by other packages if those other packages have tainted the specified package-id. See the
                 explanation of tainting in the NOTES section.

     --export-plist package-id
                 Print all receipt information about the specified package-id in the standard Mac OS X
                 plist(5) format.

     --import-plist
                 Load receipt data formatted as a plist(5) from standard input. Use --export-plist for an
                 example of the data and formatting expected.

     --verify package-id
                 Run repair_packages(8) to verify the specified package-id.

     --repair package-id
                 Run repair_packages(8) to repair the specified package-id.

     --pkg-info package-id
                 Print extended information about the specified package-id.

     --pkg-info-plist package-id
                 Print extended information about the specified package-id in Mac OS X plist(5) format.

     --forget package-id
                 Discard all receipt data about package-id, but do not touch the installed files.  DO NOT
                 use this command from an installer package script to fix broken package design.

     --unlink package-id
                 Unlinks (removes) each file referenced by package-id. WARNING: This command makes no
                 attempt to perform reference counting or dependency analysis. It can easily remove files
                 required by your system. It may include unexpected files due to package tainting. Use the
                 --files command first to double check.

     --learn path
                 Used within a package's postinstall script to record ACLs or filesystem permissions applied
                 to path that were not contained within the file archive itself. The installer passes a ref-erence reference
                 erence to the receipt being constructed via the INSTALL_PKG_SESSION_ID environment vari-able. variable.
                 able.

     --pkg-groups package-id
                 List all of the package groups this package-id is a member of.

     --groups    List all of the package groups on the specified --volume.

     --groups-plist
                 List all of the package groups on the specified --volume in Mac OS X plist(5) format.

     --group-pkgs group-id
                 List all of the packages that are members of this group-id.

     --file-info path
                 Show the metadata known about path.

     --file-info-plist path
                 Show the metadata known about path in Mac OS X plist(5) format.

FILE COMMANDS
     --expand pkg-path dir-path
                 Expand the flat package at pkg-path into a new directory specified by dir-path.

     --flatten dir-path pkg-path
                 Flatten the dir-path into a new flat package created at pkg-path.  The directory to be
                 flattened must have the proper contents and layout for a flat package.  This is not
                 intended as a substitute for packagemaker(1).

     --bom path  Extract any BOM files from the flat pkg at path into /tmp and return the filename(s).  Sug-gested Suggested
                 gested use is as an argument to lsbom(8).  Eg, "lsbom `pkgutil --bom path`". Note that flat
                 package archives may contain no BOM, one BOM, or several BOMs.

     --payload-files path
                 List the files archived within the payload of the uninstalled flat package(s) contained at
                 path.  This should be equivilant to "lsbom -s `pkgutil --bom path`". Note that flat package
                 archives may contain more than one package, and the destination location for the unin-stalled uninstalled
                 stalled package(s) is unknown to this command.

DEBUG COMMANDS
     --pkgutil-version
                 Output the version of the pkgutil command.

     --test      Verify a connection to the receipt database and check that the client and server agree on
                 the protocol version.

ENVIRONMENT
     The following environment variables affect the execution of pkgutil.

     INSTALL_PKG_SESSION_ID
                      Supplied by the Installer when pkgutil is used within a package script. Overridden by
                      the --edit-pkg option, so be sure to leave the package unspecified within package
                      scripts if you want to modify the package being installed.

     INSTALL_TARGET_VOLUME
                      Supplied by the Installer when pkgutil is used within a package script. Overridden by
                      the --volume option, so be sure to leave the volume unspecified within package scripts
                      if you want to modify the package being installed.

NOTES
     1.   Package tainting is when one package declares its contents should become part of another package.
          Future upgrades to the other package will behave as if the other package installed the additional
          files found in the tainting package. This will usually result in the tainting package's files
          being removed when the tainted package is upgraded.

     2.   The --forget command is a debugging tool and should not be used routinely.  There are better ways
          to permanently disable upgrade logic within a package.

FILES
     /usr/libexec/repair_packages
     /Library/Receipts/db/
     ~/Library/Receipts/db/

SEE ALSO
     installer(8)
     repair_packages(8)
     packagemaker(1)
     http://lists.apple.com/mailman/listinfo/installer-dev

BUGS
     Package dependency analysis and reference counting are not yet available, hence there is no --uninstall
     command yet.

Mac OS                           April 2, 2008                          Mac OS

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.