pkgmk(1) User Commands pkgmk(1)
pkgmk - produce an installable package
pkgmk [-o] [-a arch] [-b base_src_dir] [-d device] [-f prototype]
[-l limit] [-p pstamp] [-r root_path] [-v version] [variable=value...]
The pkgmk utility produces an installable package to be used as input
to the pkgadd(1M) command. The package contents will be in directory
The command uses the package prototype(4) file as input and creates a
pkgmap(4) file. The contents for each entry in the prototype file is
copied to the appropriate output location. Information concerning the
contents (checksum, file size, modification date) is computed and
stored in the pkgmap file, along with attribute information specified
in the prototype file.
pkgmk searches for the files listed in the prototype(4) file as
described in the following conditions. Note: If a prototype file con-
tains the explicit location of the file to include in the package, then
the following search explanations do not apply.
1. If neither -b nor -r options are specified, the file name component
of each file path listed in the prototype(4) file is expected to be
found in the same directory as the prototype(4) file
2. If -b is specified as a relative path (without a leading "/"), then
base_src_dir is prepended to the relative file paths from the pro-
totype(4) file. The resulting path is searched for in the root_path
directories. If a root_path is not specified, it defaults to "/".
3. If -b is specified as an absolute path (with a leading "/"), then
base_src_dir is prepended to the relative paths from the proto-
type(4) file and the result is the location of the file. root_path
is not searched.
4. If -r is specified, then full file paths are used from the proto-
type(4) file. Relative paths have base_src_dir prepended. If
base_src_dir is not specified, it defaults to "". The resulting
path is searched for in each directory of the root_path.
If you created your prototype file using "pkgproto a/relative/path" or
"pkgproto a/relative/path=install/path", then you should use the -r
root_path option to specify the location of a/relative/path so that
pkgmk can correctly locate your source files.
The following options are supported:
-a arch Overrides the architecture information provided in the
pkginfo(4) file with arch.
-b base_src_dir Prepends the indicated base_src_dir to locate relocat-
able objects on the source machine. Use this option to
search for all objects in the prototype file. pkgmk
expects to find the objects in /base_src_dir or to
locate the objects by use of the -b and -r options,
-d device Creates the package on device. device can be an abso-
lute directory pathname or the identifiers for a floppy
disk or removable disk (for example, /dev/diskette).
The default device is the installation spool directory
-f prototype Uses the file prototype as input to the command. The
default prototype filename is [Pp]rototype.
-l limit Specifies the maximum size in 512 byte blocks of the
output device as limit. By default, if the output file
is a directory or a mountable device, pkgmk will employ
the df(1M) command to dynamically calculate the amount
of available space on the output device. This option is
useful in conjunction with pkgtrans(1) to create a
package with a datastream format.
-o Overwrites the same instance; package instance will be
overwritten if it already exists.
-p pstamp Overrides the production stamp definition in the
pkginfo(4) file with pstamp.
-r root_path Uses the indicated root_path with the source pathname
appended to locate objects on the source machine, using
a comma (,) as the separator for the path elements. If
this option is specified, look for the full destination
path in each of the directories specified. If neither
-b nor -r is specified, look for the leaf filename in
the current directory.
-v version Overrides the version information provided in the
pkginfo(4) file with version.
variable=value Places the indicated variable in the packaging environ-
ment. (See prototype(4) for definitions of variable
The following operand is supported:
pkginst A package designation by its instance. An instance can
be the package abbreviation or a specific instance (for
example, inst.1 or inst.2). All instances of a package
can be requested by inst.*. The asterisk character (*)
is a special character to some shells and may need to
be escaped. In the C-Shell, "*" must be surrounded by
single quotes (') or preceded by a backslash (\).
The following exit values are returned:
0 Successful completion.
>>0 An error occurred.
See attributes(5) for descriptions of the following attributes:
tab() allbox; cw(2.750000i)| cw(2.750000i) lw(2.750000i)|
lw(2.750000i). ATTRIBUTE TYPEATTRIBUTE VALUE AvailabilitySUNWcsu
pkgparam(1), pkgproto(1), pkgtrans(1), uname(1), df(1M), pkgadd(1M),
pkginfo(4), pkgmap(4), prototype(4), attributes(5)
Application Packaging Developer's Guide
Architecture information is provided on the command line with the -a
option or in the prototype(4) file. If no architecture information is
supplied, pkgmk uses the output of uname -m (see uname(1)).
Version information is provided on the command line with the -v option
or in the pkginfo(4) file. If no version information is supplied, a
default based on the current date will be provided.
Command line definitions for both architecture and version override the
SunOS 5.10 10 Jan 2001 pkgmk(1)