pkginfo is an ASCII file that describes the
characteristics of the package along with information that helps control the
flow of installation. It is created by the software package developer.
Each entry in the pkginfo file is a line that establishes
the value of a parameter in the following form:
PARAM="value"
There is no required order in which the parameters must be
specified within the file. The PKG, NAME, ARCH,
VERSION and CATEGORY parameters are mandatory. Other
parameters are optional.
pkginfo provides optional parameters and an environment
variable in support of the zones (multiple Solaris environments) feature.
See zones(7).
The following parameters are mandatory:
ARCH
A comma-separated list of alphanumeric tokens that
indicate the architecture associated with the package. The
pkgmk(1)
tool can be used to create or modify this value when actually building the
package. The maximum length of a token is 16 characters and it cannot include
a comma.
Solaris's installation software meaningfully uses only one
architecture token of the form:
<instruction_set_architecture>[.<platform_group>]
where platform_group is intended only for Solaris
installation packages. Third party application software should restrict
itself to ARCH values from the following Solaris-supported
instruction set architectures (uname -p): sparc,
i386, and ppc. Examples of Solaris' platform groups (uname
-m) are sun4u for the SPARC instruction set and
i86pc for the i386 instruction set. See uname(1) and
isalist(1) for more details.
CATEGORY
A comma-separated list of categories under which a
package can be displayed. A package must at least belong to the system or
application category. Categories are case-insensitive and can contain only
alphanumerics. Each category is limited in length to 16 characters.
NAME
Text that specifies the package name (maximum length of
256 ASCII characters). Use the NAME parameter as the foundation
for describing the functionality and purpose of the package; spell out any
acronyms and avoid internal product/project code names. The DESC
parameter can then be used to expand the descriptive information. Use the
NAME parameter to state as specifically as possible the use of the
package, why a user would need to load it, and so on.
PKG
Abbreviation for the package being installed. All
characters in the abbreviation must be alphanumeric. You can also use the
− and
+ characters in the abbreviation. The first
character cannot be numeric, a
+ or a
-.
The abbreviation is limited to a maximum length of 32 characters.
install, new, and all are reserved abbreviations. It is
customary to make the first four letters unique to your company, such as the
company's stock symbol.
VERSION
Text that specifies the current version associated with
the software package. The maximum length is 256
ASCII characters and
the first character cannot be a left parenthesis. The
pkgmk(1) tool can
be used to create or modify this value when actually building the package.
Traditional Solaris practice was to assign this parameter monotonically
increasing Dewey decimal values of the form:
<major_revision>.<minor_revision>[.<micro_revision>]
where all the revision fields are integers. The versioning fields
can be extended to an arbitrary string of numbers in Dewey-decimal format,
if necessary.
The following parameters are optional:
BASEDIR
The pathname to a default directory where
"relocatable" files can be installed. If blank, the package is not
relocatable and any files that have relative pathnames are not installed. An
administrator can override the default directory.
CLASSES
A space-separated list of classes defined for a package.
The order of the list determines the order in which the classes are installed.
Classes listed first are installed first (on a media by media basis). This
parameter can be modified by the request script.
DESC
Text that describes the package (maximum length of 256
ASCII characters). This parameter value is used to provide the
installer with a description of what the package contains and should build on
the description provided in the NAME parameter. Try to make the two
parameters work together so that a pkginfo -l provides a fairly
comprehensive textual description of the package.
EMAIL
An electronic address where further information is
available or bugs can be reported (maximum length of 256 ASCII
characters).
HOTLINE
Phone number and/or mailing address where further
information can be received or bugs can be reported (maximum length of 256
ASCII characters).
INTONLY
Indicates that the package should only be installed
interactively when set to any non-null value.
ISTATES
A list of allowable run states for package installation
(for example, "
S s 1" allows run states of
S,
s or
1). The Solaris operating environment supports the run
levels
s,
S,
0,
1,
2,
3,
5,
and
6. Applicable run levels for this parameter are
s,
S,
1,
2, and
3. See
init(8) for details.
MAXINST
The maximum number of package instances that should be
allowed on a machine at the same time. By default, only one instance of a
package is allowed. This parameter must be set in order to have multiple
instances of a package. In order to support multiple instances of packages
(for example, packages that differ in their ARCH or VERSION
parameter value), the value of this parameter must be high enough to allow for
all instances of a given package, including multiple versions coexisting on a
software server.
ORDER
A list of classes defining the order in which they should
be put on the medium. Used by
pkgmk(1) in creating the package. Classes
not defined in this field are placed on the medium using the standard ordering
procedures.
PSTAMP
Production stamp used to mark the
pkgmap(5) file
on the output volumes. Provides a means for distinguishing between production
copies of a version if more than one is in use at a time. If
PSTAMP is
not defined, the default is used. The default consists of the UNIX system
machine name followed by the string "
YYYYMMDDHHMMSS" (year,
month, date, hour, minutes, seconds).
RSTATES
A list of allowable run states for package removal (for
example, "
S s 1" allows run states of
S,
s or
1). The Solaris operating environment supports the run levels
s,
S,
0,
1,
2,
3,
5, and
6.
Applicable run levels for this parameter are
s,
S,
1,
2, and
3 See
init(8) for details.
SUNW_ISA
Solaris-only optional parameter that indicates a software
package contains 64-bit objects if it is set to sparcv9. If this
parameter is not set, the default ISA (instruction set architecture) is
set to the value of the ARCH parameter.
SUNW_PKG_DIR
A value set by pkgadd that contains the location
of the installing package. This value is provided to any install time package
procedure scripts that need to know where the installing package is located.
This parameter should never be set manually from within a pkginfo
file.
SUNW_PKG_ALLZONES
Defines whether a package, when installed, must be
installed and must be identical in all zones. Assigned value can be
true or
false. The default value is
false. The setting of
SUNW_PKG_ALLZONES has the effects described below.
If set to true, the following conditions are in effect:
- o
- The package must be installed in the global zone.
- o
- The package must be installed in any non-global zone that is created.
- o
- The package must be identical in all zones.
- o
- The package can be installed only by the global zone administrator.
- o
- The package cannot be installed by a non-global zone administrator.
If set to
false, the following conditions are in effect:
- o
- The package is not required to be installed in all zones.
- o
- The package is not required to be identical across all zones.
- o
- The package can be installed by the global zone administrator or by a
non-global zone administrator.
Packages that must be identical across all zones must set this variable to
true. This would include packages that deliver components that are part
of the core operating system, or that are dependent on interfaces exported by
the core operating system, or that deliver device drivers, or runtime
libraries that use or export operating system interfaces that are not
guaranteed to be stable across minor releases.
Packages that deliver components that are not part of the core
operating system (such as application programs) that can be different
between any two zones must set this variable to false.
With respect to SUNW_PKG_ALLZONES, keep in mind the
following:
- o
- Use of pkgadd in the global zone installs packages in all zones
unless -G is specified, in which case packages are installed in the
global zone only. The setting of SUNW_PKG_ALLZONES does not change
this behavior. For example, a package that has a setting of
SUNW_PKG_ALLZONES=false is not installed in the global zone
only.
- o
- The SUNW_PKG_ALLZONES attribute controls whether a package
must be installed in all zones (and must be the same in all zones)
when it is installed.
- o
- Use of the -G option to pkgadd with a package that has
SUNW_PKG_ALLZONES=true is an error and causes installation of that
package to fail.
SUNW_PKG_HOLLOW
Defines whether a package should be visible in any
non-global zone if that package is required to be installed and be identical
in all zones (for example, a package that has
SUNW_PKG_ALLZONES=true).
Assigned value can be
true or
false. The default value is
false. The package is not required to be installed, but if it is
installed, the setting of
SUNW_PKG_HOLLOW has the effects described
below.
If set to false, the following conditions are in
effect:
- o
- If installed in the global zone, the package content and installation
information are required in all non-global zones.
- o
- Software delivered by the package is visible in all non-global zones. An
example of such a a package is the package that delivers the
truss(1) command.
If set to
true, the following conditions are in effect:
- o
- The package content is not delivered on any non-global zone. However, the
package installation information is required on all non-global zones.
- o
- The package delivers software that should not be visible in all non-global
zones. Examples include kernel drivers and system configuration files that
work only in the global zone. This setting allows the non-global zone to
resolve dependencies on packages that are installed only in the global
zone without actually installing the package data.
- o
- In the global zone, the package is recognized as having been installed,
and all components of the package are installed. Directories are created,
files are installed, and class action and other scripts are run as
appropriate when the package is installed.
- o
- In a non-global zone, the package is recognized as having been installed,
but no components of the package are installed. No directories are
created, no files are installed, and no class action or other install
scripts are run when the package is installed.
- o
- When removed from the global zone, the package is recognized as having
been completely installed. Appropriate directories and files are removed,
and class action or other install scripts are run when the package is
removed.
- o
- When removed from a non-global zone, the package is recognized as not
having been completely installed. No directories are removed, no files are
removed, and no class action or other install scripts are run when the
package is removed.
- o
- The package is recognized as being installed in all zones for purposes of
dependency checking by other packages that rely on this package being
installed.
If
SUNW_PKG_ALLZONES is set to
false, the value of this variable
has no meaning. It is a package construction error to set
SUNW_PKG_ALLZONES to
false, then set
SUNW_PKG_HOLLOW to
true.
SUNW_PKG_THISZONE
Defines whether a package must be installed in the
current zone only. Assigned value can be
true or
false. The
default value is
false. The setting of
SUNW_PKG_THISZONE has the
effects described below.
If set to true, the following conditions are in effect:
- o
- The package is installed in the current zone only.
- o
- If installed in the global zone, the package is not added to any currently
existing or yet-to-be-created non-global zones. This is the same behavior
that would occur if the -G option were specified to
pkgadd.
If set to false, the following conditions are in effect:
- o
- If pkgadd is run in a non-global zone, the package is installed in
the current zone only.
- o
- If pkgadd is run in the global zone, the package is installed in
the global zone, and is also installed in all currently installed
non-global zones. In addition, the package will be propagated to all
future, newly installed non-global zones.
SUNW_PKGVERS
Solaris-only parameter indicating of version of the
Solaris operating environment package interface.
SUNW_PKGVERS="<sunw_package_version>"
where <sunw_package_version> has the form
x.y[.z] and x, y, and z are integers. For packages
built for this release and previous releases, use
SUNW_PKGVERS="1.0".
SUNW_PRODNAME
Solaris-only parameter indicating the name of the product
this package is a part of or comprises (maximum length of 256 ASCII
characters). A few examples of SUNW_PRODNAME values are:
"SunOS", "OpenWindows", and "Common
Desktop Environment".
SUNW_PRODVERS
Solaris-only parameter indicating the version or release
of the product described in SUNW_PRODNAME (maximum length of 256
ASCII characters). For example, where
SUNW_PRODNAME="SunOS", and the Solaris 2.x Beta
release, this string could be "5.x BETA", while for the
Solaris 2.x FCS release, the string would be "5.x". For
Solaris 10, the string is "5.10". If the SUNW_PRODNAME
parameter is NULL, so should be the SUNW_PRODVERS
parameter.
ULIMIT
If set, this parameter is passed as an argument to the
ulimit(1) command (see
limit(1)), which establishes the maximum
size of a file during installation.
VENDOR
Used to identify the vendor that holds the software
copyright (maximum length of 256 ASCII characters).
VSTOCK
The vendor stock number, if any, that identifies this
product (maximum length of 256 ASCII characters).
For further discussion of the zones-related parameters described
above, see System Administration Guide: Virtualization Using the Solaris
Operating System.