How to find Solaris 11 Version Release Schema

Thu, 11/24/2011 - 19:33 — Stefan Schneider

http://www.scalingbits.com/solaris/11/versionschema


Solaris 11 is public available and the IPS package management is setting new standards in Solaris administration and version management.

Everyone who develops software for this platform will want to make sure that the application users are using the optimal Solaris 11 infrastructure. The Oracle binary guarantee warrants that an application will work on any Solaris 11 release no matter which minor revision the kernel has. It's however a reasonable idea to ask a user to be at same minimum patch level you qualified your application on.

Which Solaris OS am I working on?

There are a number of ways to distinguish Solaris 10 systems from OpenSolaris or Solaris 11 Express systems.

One way is to parse the file /etc/release:

root@solaris:~# more /etc/release
Oracle Solaris 11 11/11 X86
Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
Assembled 18 October 2011

It states that this is a Solaris 11 system being released 11/11. It means it got released in November 2011 by Oracle. This is the final Solaris 11. The version to build professional, long lasting software against.

Another option is the uname command:

root@solaris:~# uname -r
5.11

It'll let you know that you're working on a SunOS 5.11 platform. This is Solaris 11, or may be Solaris 11 Express, or may be Open Solaris. It's not very concise...

the option -v makes things even more confusing:

sschneid@solaris:~$ uname -v
11.0

You will know that you are on Solaris 11.

Being on Solaris 11 is a kind of cool. Oracle improves this product over time and there will be most likely update releases and patch bundles (SRU) as we know them from Solaris 10.

The above commands will allow only to figure out if this is a Solaris 11 and you can learn when it has been released. This date is likely to correlate with the update releases.

Which Solaris Patch Level am I working on?

Solaris 11 isn't using anymore System V packages it uses the new IPS. IPS doesn't distinguish between packages and patches for packages. It deals with packages and their revisions only.

Patches happen to be packages with higher minor version numbers. Oracle is now pursuing a uniform approach. IPS allows to check the concise version number of a package with the command pkg info <package name>.

This allows to check the fine grained patch revision for any given package. The individual package granularity will be an overkill for most applications. Most applications will be happy to find a minimum Oracle patch level for the entire system. A check of the kernel package is all it takes. Most other packages of the OS will depend on the kernel revision.

Oracle has a concept of making update revisions freely available through the OTN license. Patch bundles in between update release are available for customers as Support Repository Updates (SRU). These SRUs are what you will want to rely on to operate a high quality Solaris 11 environment.

It happens that Oracle has been shipping the first SRU and the pkg info commands allows to understand versioning scheme:

schneid@solaris:~$ pkg info kernel
Name: system/kernel
Summary: Core Kernel
Description: Core operating system kernel, device drivers and other modules.
Category: System/Core
State: Installed
Publisher: solaris
Version: 0.5.11
Build Release: 5.11
Branch: 0.175.0.1.0.3.1
Packaging Date: November 10, 2011 06:49:35 PM
Size: 32.33 MB
FMRI: pkg://solaris/system/kernel@0.5.11,5.11-0.175.0.1.0.3.1:20111110T184935Z

The relevant information can be found in the Branch or in the FMRI attribute:

It can be deciphered as follows:

  • 175: The trunk identifier.This is an indicator for Solaris 11 GA. Lower build numbers are indicators of older developer releases (151: Solaris 11 Express). You will want to deploy your application on build 175. This digit is defacto frozen for Solaris 11. It documents that Oracle and Sun worked for seven years on Solaris 11 and it took them 175 builds to get it right.
  • 0: The next 0 is indicating the update release. Solaris 11 is brand new. There hasn't been an update release. This number is likely to be incremented when update release will happen. This 0 translates into the "11/11" from the file /etc/release
  • 1: The SRU. This is the first SRU for Solaris 11, update 0. Oracle's first patch bundle. It has been released a few days after the intial release. More of them are likely to follow. It'll take support contracts and access to the the Oracle support repositories to obtain these patches.
  • 0: This field doesn't seem to get used
  • 3.1 These seem to Oracle internal counters which are likely to distinguish internal builds in between SRUs. They have no relevance to regular users.

Higher SRUs levels shouldn't break anything. They're supposed to fix bugs. Higher update levels aren't supposed to break anything either. They may add new functionality without breaking old APIs.

Oracle is updating the support repositories on demand in between SRUs. Every update in the support repositories will lead to an increased version number of the package "entire".

Any software being implemented on a given Solaris 11 release will want to make sure that it requests the minimum version which is required but not more than needed.

MyOracle support discusses this topic in great detail in document 1378134.1 (The Oracle Solaris 11 Package Branch Version Scheme).

Where do I get which Software from?

Oracle offers a free (OTN license) access to Solaris 11 through http://pkg.oracle.com. Directing the browser to this URL reveils the concise version which can be provisioned: