How to Install an IDR on a Non-Global Zone
This procedure describes how to use the svc:/application/pkg/system-repository:default SMF service to install an IDR on a non-global zone.
The svc:/application/pkg/system-repository:default service is in the global zone and must be online before you can install an IDR safely.
- Determine the state of the
svc:/application/pkg/system-repository:defaultservice instance by running thesvcs -xvcommand.# svcs -xv-
Service instance online. The
svcs -xvcommand produces no output and you can install the IDR safely. Go to Step 5. -
Service instance in maintenance. The
svcs -xvcommand shows output similar to the following:# svcs -xv svc:/application/pkg/system-repository:default (IPS System Repository) State: maintenance since 2025-04-04T07:24:15 Reason: Start method exited with $SMF_EXIT_ERR_FATAL. See: http://support.oracle.com/msg/SMF-8000-KS See: man -M /usr/share/man -s 8 pkg.sysrepo See: /var/svc/log/application-pkg-system-repository:default.log Impact: This service is not running.
-
- Determine why the service instance is in the maintenance state by viewing the
/var/svc/log/application-pkg-system-repository:default.loglog file.If the log includes entries similar to the following, you must update the IDR file permissions:
pkg.sysrepo: unable to get publisher information: file repository file:///root/idr5760.1.p5p does not exist or is not accessible
pkg.client.api_errors.PermissionsException: Could not operate on /var/tmp/idr5760.1.p5p
These log entries indicate that the
idr5760.1.p5pIDR file is not accessible by the user that runs thesvc:/application/pkg/ssystem-repository:defaultservice. - Move the
idr5760.1.p5pfile to/var/tmpand update its file permissions.# mv idr5760.1.p5p /var/tmp # chmod 644 /var/tmp/idr5760.1.p5p # ls -l /var/tmp/idr5760.1.p5p -rw-r--r-- 1 root root 54999040 Apr 3 14:11 /var/tmp/idr5760.1.p5p
- Re-set the existing publisher to access the IDR file in its new location.
- View the publisher status.
# pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F file:///root/idr5760.1.p5p/ solaris origin online F http://ipkg.us.oracle.com/solaris11/support/ - Remove the original
file:///root/idr5760.1.p5pIDR from thesolarispublisher.# pkg set-publisher -G file:///root/idr5760.1.p5p/ solaris - Verify that the original
file:///root/idr5760.1.p5pIDR is no longer part of thesolarispublisher.# pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F http://ipkg.us.oracle.com/solaris11/support/ - Add the new
file:///var/tmp/idr5760.1.p5pIDR to thesolarispublisher.# pkg set-publisher -g /var/tmp/idr5760.1.p5p solaris - Verify that the new
file:///var/tmp/idr5760.1.p5pIDR is part of thesolarispublisher.# pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F file:///var/tmp/idr5760.1.p5p/ solaris origin online F http://ipkg.us.oracle.com/solaris11/support/ - Notify SMF that the
system-repository:defaultservice instance in the maintenance state has been repaired.# svcadm clear system-repository:default - Verify that the
system-repository:defaultservice instance is online.# svcs -xv
- View the publisher status.
- Install the IDR.
# pkg install -r idr5760