Package Environment Variables
You can use variables in the required information files, pkginfo and prototype. You can
also use an option to the pkgmk command, which is used to build
a package. As these files and commands are discussed in this chapter,
more context-sensitive information on variables is provided. However, before you begin building your package,
you should understand the different types of variables and how they can affect
the successful creation of a package.
There are two types of variables:
Build variables
Build variables begin with a lowercase letter and are evaluated at build time, as the package is being built with the pkgmk command.
Install variables
Install variables begin with an uppercase letter and are evaluated at install time, as the package is being installed with the pkgadd command.
General Rules on Using Environment Variables
In the pkginfo file, a variable definition takes the form PARAM=value, where
the first letter of PARAM is an uppercase letter. These variables are evaluated
only at install time. If any of these variables cannot be evaluated, the
pkgadd command aborts with an error.
In the prototype file, a variable definition can take the form !PARAM=value or
$variable. Both PARAM and variable can begin with either an uppercase or
a lowercase letter. Only variables whose values are known at build time are
evaluated. If PARAM or variable is a build or install variable whose
value is not known at build time, the pkgmk command aborts with an
error.
You can also include the option PARAM=value as an option to the pkgmk
command. This option works the same as in the prototype file, except
that its scope is global to the entire package. The !PARAM=value definition in
a prototype file is local to that file and the part of
the package it defines.
If PARAM is an install variable, and variable is an install variable
or build variable with a known value, the pkgmk command inserts the definition
into the pkginfo file so that the definition will be available at
install time. However, the pkgmk command does not evaluate PARAM that are in any
path names that are specified in the prototype file.
Package Environment Variables Summary
The following table summarizes variable specification formats, location, and scope.
Table 2-2 Package Environment Variables Summary
Where Variable Is Defined |
Variable
Definition Format |
Variable Type Being Defined |
When the Variable is Evaluated |
Where the Variable is
Evaluated |
Items the VariableMay Substitute For |
pkginfo file |
PARAM=value |
Build |
Ignored at build time |
N/A |
None |
Install |
Install time |
In the pkgmap
file |
owner, group, path, or link target |
|
|
prototype file |
!PARAM=value |
Build |
Build time |
In the prototype file
and any included files |
mode, owner, group, or path |
Install |
Build time |
In the prototype file
and any included files |
!search and !command commands only |
|
|
pkgmk command line |
PARAM=value |
Build |
Build time |
In the
prototype file |
mode, owner, group, or path |
Install |
Build time |
In the prototype file |
!search command only |
|
|
Install
time |
In the pkgmap file |
owner, group, path, or link target |
|
|
|