Non-Global Zone Cannot Be Installed

Error messages:

  • The following pattern(s) did not match any allowable packages. Try
    using a different matching pattern, or refreshing publisher information
  • Linked progress: pkg: update failed (linked image exception(s)):
    pkg sync-linked: No solution was found to satisfy constraints

Core operating system packages must be the same version in non-global zones as in the global zone. If the solaris publisher origin in this image is set to a package repository that does not contain the same versions of the system packages that are installed in the global zone, attempting to install a non-global zone results in the following error:

$ zoneadm -z myzone install
The following ZFS file system(s) have been created:
    rpool/VARSHARE/zones/myzone
Progress being logged to /var/log/zones/zoneadm.20160206T181301Z.myzone.install
       Image: Preparing at /system/zones/myzone/root.

Install Log: /system/volatile/install.4606/install_log
AI Manifest: /tmp/manifest.xml.9daq.i
SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
  Zonename: myzone
Installation: Starting ...

            Creating IPS image
Startup linked: 1/1 done
            Installing packages from:
                solaris
                    origin:  http://pkg.oracle.com/solaris/release/
            Error occurred during execution of 'generated-transfer-4606-1' checkpoint.
            Failed Checkpoints:

            Checkpoint execution error:

                The following pattern(s) did not match any allowable packages. Try
                using a different matching pattern, or refreshing publisher information:

Installation: Failed.  See install log at /system/volatile/install.4606/install_log
ERROR: auto-install failed.

To install a non-global zone, the repository that you set as the solaris publisher origin must contain at least the same system software that is installed in the global zone where you are installing the non-global zone. The repository can also contain older or newer software, but it must contain the same software that is installed in the global zone. The following command shows that the /var/share/pkgrepos/solaris repository is a suitable publisher origin for this global zone because this repository contains the same version of the pkg:/entire package that is installed in the global zone:

$ pkg list entire
NAME (PUBLISHER)      VERSION                   IFO
entire                0.5.11-0.175.2.0.0.26.0   i--
$ pkgrepo list -Hs /var/share/pkgrepos/solaris entire@0.5.11-0.175.2.0.0.26.0
solaris       entire       0.5.11-0.175.2.0.0.26.0:20131028T190148Z
$ pkg set-publisher -G '*' -M '*' -g /var/share/pkgrepos/solaris/ solaris

If a publisher is configured in a non-global zone, all locations for that publisher must be accessible from the global zone even if that publisher is not configured in the global zone.

Make sure the svc:/application/pkg/system-repository:default and svc:/application/pkg/zones-proxyd:default services are online in the global zone. Make sure the svc:/application/pkg/zones-proxy-client:default service is online in the non-global zone.

See also Sync Linked Package Cannot Be Installed.