About Adding Packages in Zones
The pkgadd system utility described in the pkgadd(1M) man page is used to
add packages on a Solaris system with zones installed.
Using pkgadd in the Global Zone
The pkgadd utility can be used with the -G option in the global
zone to add the package to the global zone only. The package is
not propagated to any other zones. Note that if SUNW_PKG_THISZONE=true, you
do not have to use the -G option. If SUNW_PKG_THISZONE=false, the
-G option will override it.
When you run the pkgadd utility in the global zone, the following actions
apply.
The pkgadd utility is able to add a package:
To the global zone only, unless the package is SUNW_PKG_ALLZONES=true
To the global zone and to all non-global zones
To all non-global zones only, if the package is already installed in the global zone
To the current zone only, if SUNW_PKG_THISZONE=true
The pkgadd utility cannot add a package:
To any subset of the non-global zones
To all non-global zones, unless the package is already installed in the global zone
If the pkgadd utility is run without the -G option and SUNW_PKG_THISZONE=false , the specified package is added to all zones by default. The package is not marked as installed in the global zone only.
If the pkgadd utility is run without the -G option and SUNW_PKG_THISZONE=true, then the specified package is added to the current (global) zone by default. The package is marked as installed in the global zone only.
If the -G option is used, the pkgadd utility adds the specified package to the global zone only. The package is marked as installed in the global zone only. The package is not installed when any non-global zone is installed.
Adding a Package to the Global Zone and to All Non-Global Zones
To add a package to the global zone and to all non-global
zones, execute the pkgadd utility in the global zone. As the global administrator, run
pkgadd without the -G option.
A package can be added to the global zone and to all
non-global zones without regard to the area affected by the package.
The following steps are performed by the pkgadd utility:
Package dependencies are checked on the global zone and on all non-global zones. If required packages are not installed in any zone, then the dependency check fails. The system notifies the global administrator, who is prompted whether to continue.
The package is added to the global zone.
The package database on the global zone is updated.
The package is added to each non-global zone and the database in the global zone is updated.
The package database on each non-global zone is updated.
Adding a Package to the Global Zone Only
To add a package to the global zone only, as the global
administrator in the global zone, execute the pkgadd utility with the -G option
only.
A package can be added to the global zone if the following
conditions are true:
The following steps are performed by the pkgadd utility:
If the package contents affect any area of the global zone that is shared with any non-global zone, or if the package is set SUNW_PKG_ALLZONES=true, then pkgadd fails. The error message states that the package must be added to the global zone and to all non-global zones.
Package dependencies are checked on the global zone only. If required packages are not installed, then the dependency check fails. The system notifies the global administrator, who is prompted whether to continue.
The package is added to the global zone.
The package database on the global zone is updated.
The package information on the global zone is annotated to indicate that this package is installed on the global zone only. If a non-global zone is installed in the future, this package will not be installed.
Adding a Package Installed in the Global Zone to all Non-Global Zones
To add a package that is already installed in the global zone
to all non-global zones, you must currently remove the package from the global
zone and reinstall it in all zones.
These are the steps used to add a package that is already
installed in the global zone to all of the non-global zones:
In the global zone, use pkgrm to remove the package.
Add the package without using the -G option.
Using pkgadd in a Non-Global Zone
To add a package in a specified non-global zone, execute the pkgadd
utility, without options, as the zone administrator. The following conditions apply:
The pkgadd utility can only add packages in the non-global zone in which the utility is used.
The package cannot affect any area of the zone that is shared from the global zone.
The package must be set SUNW_PKG_ALLZONES=false.
The following steps are performed by the pkgadd utility:
Package dependencies are checked on the non-global zone's package database before the package is added. If required packages are not installed, then the dependency check fails. The system notifies the non-global zone administrator, who is prompted whether to continue. The check fails if either of the following conditions are true.
The package is added to the zone.
The package database on the zone is updated.