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:default
service instance by running thesvcs -xv
command.# svcs -xv
-
Service instance online. The
svcs -xv
command produces no output and you can install the IDR safely. Go to Step 5. -
Service instance in maintenance. The
svcs -xv
command 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.log
log 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.p5p
IDR file is not accessible by the user that runs thesvc:/application/pkg/ssystem-repository:default
service. - Move the
idr5760.1.p5p
file to/var/tmp
and 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.p5p
IDR from thesolaris
publisher.# pkg set-publisher -G file:///root/idr5760.1.p5p/ solaris
- Verify that the original
file:///root/idr5760.1.p5p
IDR is no longer part of thesolaris
publisher.# 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.p5p
IDR to thesolaris
publisher.# pkg set-publisher -g /var/tmp/idr5760.1.p5p solaris
- Verify that the new
file:///var/tmp/idr5760.1.p5p
IDR is part of thesolaris
publisher.# 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:default
service instance in the maintenance state has been repaired.# svcadm clear system-repository:default
- Verify that the
system-repository:default
service instance is online.# svcs -xv
- View the publisher status.
- Install the IDR.
# pkg install -r idr5760