Fault Management Resource Identifiers

Each package is represented by a Fault Management Resource Identifier (FMRI). The full FMRI for a package consists of the scheme, a publisher, the package name, and a version string in the following format:

scheme://publisher/name@version

The scheme, publisher, and version parts of the FMRI string are optional.

The following rules apply to matching package names and versions in IPS command operands:

  • Package names. You can use the smallest portion of the package name that uniquely identifies the package. You can use the ? and * characters as glob(3C)-style wildcards in the package name to match one or more packages.

  • Package versions. If you specify a version, you can omit components from the right hand side of the version string. You can use the * character as a wildcard to match a whole component of the version string. A * character cannot be used to match a partial component. A single * character cannot match more than one component. The ? cannot be used in a version string.

The following examples illustrate package matching:

  • Match any installed package that has jre anywhere in the name:

    $ pkg list '*jre*'
    NAME (PUBLISHER)                       VERSION                    IFO
    runtime/java/jre-8                     1.8.0.181.12               i--
  • Match all installed packages with java anywhere in the name, any component version, and 11.4 branch version:

    $ pkg list '*java*@*-11.4'
    NAME (PUBLISHER)                       VERSION                    IFO
    library/javascript/jjv                 1.0.2-11.4.0.0.1.10.0      i--
    system/management/rad/client/rad-java  11.4-11.4.0.0.1.10.1       i--
  • Notice the one-character difference between the following command and the previous command:

    $ pkg list '*java*@*11.4'
    pkg list: Illegal FMRI '*java*@*11.4': Bad Version: *11.4
  • An asterisk * cannot match a partial version component or more than one version component:

    $ pkg list '*java*@11.4-11.4.*.10.0'
    pkg list: no packages matching the following patterns are installed:
      *java*@11.4-11.4.*.10.0
    $ pkg list '*java*@*.10.0'
    pkg list: no packages matching the following patterns are installed:
    *java*@*.10.0

The scheme for every IPS package FMRI is pkg. In the following example package FMRI for the compliance security compliance framework, solaris is the publisher, security/compliance is the package name, and 11.4-11.4.0.0.1.10.1:20180702T144054Z is the version:

pkg://solaris/security/compliance@11.4-11.4.0.0.1.10.1:20180702T144054Z
Scheme

pkg

Publisher

solaris

If the publisher is specified, then the publisher name must be preceded by pkg:// or //.

Package name

security/compliance

Package names are hierarchical with an arbitrary number of components separated by forward slash (/) characters. In IPS commands, leading components of package names can be omitted if the package name that is used in the command uniquely identifies the package. If you specify the full package name but omit the publisher, the full package name can be preceded by pkg:/ or / but not by pkg:// or //. If you specify an abbreviated package name, do not use any other characters to the left of the package name.

Version

The version string consists of the following three parts, and the format of the time stamp is dateTtimeZ:

component_version-branch_version:time_stamp
Component version number: 11.4

For components that are tightly bound to the operating system, the component version number is minor.update. Other components, such as FOSS components, have their own version numbers. In the following example, the version number of the web/server/apache-24 package is 2.4.25:

pkg://solaris/web/server/apache-24@2.4.33-11.4.0.0.1.10.0:20180702T172601Z

The component version number is the same as the Version in pkg info output.

Branch version: 11.4.0.0.1.10.1

The branch version, if present, must follow a hyphen (-). The branch version string is the same as the Branch in pkg info output.

Oracle Solaris packages show the following information in the branch version portion of the version string of a package FMRI:

minor.update.sru.order.platform.build.rev
Minor release number: 11

The minor portion of major.minor that is output by the uname -r command.

Update release number: 4

The update release number for this Oracle Solaris release.

SRU number: 0

The Support Repository Update (SRU) number for this update release. SRUs are approximately monthly updates that fix bugs, fix security issues, or provide support for new hardware. The Oracle Support Repository is available only to systems under a support contract.

Order: 0

This value is used internally.

Platform: 1

This value is used internally.

Release or SRU build number: 10

The build number of the SRU, or the respin number for the release.

Revision or nightly build number: 1

The build number for the individual nightly builds.

If the package is an Interim Diagnostic or Relief (IDR) update, then the component_version-branch_version of the package FMRI is just a single field. For example, the FMRI for idr1929 is pkg://solaris/idr1929@4:20160216T222617Z; the complete component_version-branch_version part of the version is simply 4. IDRs are package updates that help diagnose customer issues or provide temporary relief for a problem until a formal package update is issued. See Installing an IDR Custom Software Update for more information about IDRs.

Time stamp: 20180702T144054Z

The time stamp must follow a colon (:). The time stamp is the time the package was published in ISO-8601 basic format: YYYYMMDDTHHMMSSZ.