It is best to keep the software installed in the non-global zones in sync with the software installed in the global zone to the maximum extent possible. This practice minimizes the difficulty in administering a system with multiple installed zones.
To achieve this goal, the package tools enforce the following rules when adding or removing packages in the global zone.
If the package is not currently installed in the global zone and not currently installed in any non-global zone, the package can be installed:
Only in the global zone, if SUNW_PKG_ALLZONES=false
In the current (global) zone only, if SUNW_PKG_THISZONE=true
In the global zone and all non-global zones
If the package is currently installed in the global zone only:
The package can be installed in all non-global zones.
The package can be removed from the global zone.
If a package is currently installed in the global zone and currently installed in only a subset of the non-global zones:
SUNW_PKG_ALLZONES must be set to false.
The package can be installed in all non-global zones. Existing instances in any non-global zone are updated to the revision being installed.
The package can be removed from the global zone.
The package can be removed from the global zone and from all non-global zones.
If a package is currently installed in the global zone and currently installed in all non-global zones, the package can be removed from the global zone and from all non-global zones.
These rules ensure the following:
Packages installed in the global zone are either installed in the global zone only, or installed in the global zone and all non-global zones.
Packages installed in the global zone and also installed in any non-global zone are the same across all zones.
The package operations possible in any non-global zone are:
If a package is not currently installed in the non-global zone, the package can be installed only if SUNW_PKG_ALLZONES=false.
The package can be installed in the current (non-global) zone, if SUNW_PKG_THISZONE=true.
If a package is currently installed in the non-global zone:
The package can be installed over the existing instance of the package only if SUNW_PKG_ALLZONES=false.
The package can be removed from the non-global zone only if SUNW_PKG_ALLZONES=false.