How to Update to Oracle Solaris 11.1 Using the Image Packaging System

by Peter Dennis

This article details the steps required to update your Oracle Solaris 11 11/11 systems to Oracle Solaris 11.1 using the Image Packaging System (IPS).


Published October 2012

Depending on your current environment, there are two main approaches for updating to Oracle Solaris 11.1:

Want technical articles like this one delivered to your inbox?  Subscribe to the Systems Community Newsletter—only technical content for sysadmins and developers.
  • Through the Oracle Solaris Release Repository
  • Through the Oracle Solaris Support Repository (if you have an Oracle support agreement).

Most users who have installed Oracle Solaris 11 without an Oracle support agreement will be using the Oracle Solaris Release Repository as their configured package repository, as shown below using the pkg publisher command:

# pkg publisher
PUBLISHER   TYPE    STATUS  URI
solaris     origin  online  http://pkg.oracle.com/solaris/release/

Customers who have an Oracle support agreement will be using the Oracle Solaris Support Repository as their configured package repository, as shown below:

# pkg publisher
PUBLISHER   TYPE    STATUS  URI
solaris     origin  online  https://pkg.oracle.com/solaris/support

Using the Oracle Solaris Release Repository

Updating to Oracle Solaris 11.1 is a multi-step process due to the requirement that certain system packages must be updated first in order to achieve a successful update for the rest of the system packages.

  1. First, we use pkg update with the --accept option to update a small set of system packages and then we reboot:

    # pkg update --accept
    # reboot
    
  2. (SPARC only) If you are running on a SPARC system and have any Oracle Solaris Zones installed, you will need to perform an additional step at this stage. For each zone installed on the system, you will need to remove the pkg:/system/ldoms/ldomsmanager package as follows:

    # for z in `zoneadm list`; do zlogin $z pkg uninstall ldomsmanager; done
    
  3. Next, update the IPS package itself:

    # pkg update pkg:/package/pkg
    
  4. Last, update the rest of the system packages and reboot the system.

    To update, we use the --accept flag to pkg update to agree to and accept the terms of the licenses that are being updated. We also use the --be-name flag to provide a new name to the boot environment that will be created.

    # pkg update --be-name s11.1ga --accept
    # reboot
    

Note: For systems that can't directly connect to Oracle's hosted package repositories it is necessary to download the Oracle Solaris 11.1 Pre-Upgrade Repository Image, which contains the packages that need to be updated prior to updating to Oracle Solaris 11.1. The ISO image contains a README that describes the necessary steps for constructing the repository and updating to Oracle Solaris 11.1.

Using the Oracle Solaris Support Repository

For customers who are on an Oracle support contract, the release process for Oracle Solaris 11 was changed to eliminate a hiatus on bug fix releases during the final pre-release stages of the next update to Oracle Solaris 11. This helps to accelerate the release of critical customer bug fixes on the current released version of Oracle Solaris 11. A consequence of this enhancement is that the update release itself might not contain a small number of the bug fixes released in the final Support Repository Updates (SRUs) for the preceding release.

For example, the final SRUs for Oracle Solaris 11 11/11 are SRU#12.4 and SRU#13.4. Some packages in SRU#12.4 and SRU#13.4 will have a version that is greater than those in the Oracle Solaris 11.1 release. In order to preserve these bug fixes, the version difference will prevent the update to the Oracle Solaris 11.1 release. Additionally, there will be some fixes in the core operating system that will be removed if you are moving straight to the Oracle Solaris 11.1 release. For convenience, these bug numbers are listed in the "Bugs Fixed in SRU#12.4" section.

All the bug fixes supplied by the above SRUs are addressed in the initial Oracle Solaris 11.1 SRU. This SRU is in Support Repository.

The update steps that are required might be different due to some systems running different SRU versions. To find out what SRU is on a system, you can use the pkg info command on the pkg:/entire package, as shown in Listing 1:

# pkg info entire
         Name: entire
      Summary: entire incorporation including Support Repository Update (Oracle Solaris 11 11/11 SRU 10.5).
  Description: This package constrains system package versions to the same
               build.  WARNING: Proper system update and correct package
               selection depend on the presence of this incorporation.
               Removing this package will result in an unsupported system.  For
               more information see https://support.oracle.com/CSP/main/article
               ?cmd=show&type=NOT&doctype=REFERENCE&id=1372094.1.
     Category: Meta Packages/Incorporations
        State: Installed
    Publisher: solaris
      Version: 0.5.11 (Oracle Solaris 11 SRU 10.5)
Build Release: 5.11
       Branch: 0.175.0.10.0.5.0
Packaging Date: Fri Aug 03 18:26:27 2012
         Size: 5.45 kB
         FMRI: pkg://solaris/entire@0.5.11,5.11-0.175.0.10.0.5.0:20120803T182627Z

Listing 1. Determining a System's SRU

Customers who do not want to lose any of the bug fixes in those latter Oracle Solaris 11 11/11 SRU releases should update to Oracle Solaris 11.1 SRU#1.4, as described below.

Updating a System Running SRU#10.5

  1. (SPARC only) If you are running on a SPARC system and have any Oracle Solaris Zones installed, you will need to perform this additional first step. For each zone installed on the system, you will need to remove the pkg:/system/ldoms/ldomsmanager package as follows:

    # for z in `zoneadm list`; do zlogin $z pkg uninstall ldomsmanager; done
    
  2. Update the IPS package itself:

    # pkg update pkg:/package/pkg
    

    Due to earlier bugs in some packages, it was possible to incorrectly install those packages on a system. SRU#10.5 has addressed these issues and provides a mechanism for removing such bad packages. The command above does this and it will report that it is removing some packages (if such packages are installed). These are the packages it will remove:

    X86 pkg://solaris/ldoms/ldoms-incorporation
    SPARC
    pkg://solaris/consolidation/nvidia/nvidia-incorporation
    pkg://solaris/driver/network/ethernet/elxl
    pkg://solaris/driver/network/ethernet/pcn
    pkg://solaris/driver/network/ethernet/dnet
    pkg://solaris/driver/network/ethernet/iprb
    
  3. Update the rest of the system packages and reboot the system.

    To update, we use the --accept flag to pkg update to agree to and accept the terms of the licenses that are being updated. We also use the --be-name flag to provide a new name to the boot environment that will be created.

    # pkg update --be-name s11.1ga --accept
    # reboot
    

Updating a System Running an Earlier SRU Version

In this case, you can choose to update to SRU#10.5 or to a later SRU release. Remember, however, that the latest SRUs (12 and 13) contain fixes that are not present in Oracle Solaris 11.1 until the first SRU for that release.

Run the following command to update the system to SRU#10.5:

# pkg update --accept entire@0.5.11,5.11-0.175.0.10
# reboot

Or, run the following command to update the system to the latest SRU:

# pkg update --accept
# reboot

Updating a System Running SRU#12.4 or Later to Oracle Solaris 11.1 Plus SRU#1.4 or Higher

With the release of Oracle Solaris 11.1 SRU#1.4, the way to update the system is simply to run the following command:

# pkg update --be-name s11.1sru --accept
# reboot

The system will then be running Oracle Solaris 11.1 with SRU#1.4.

Updating a System Running SRU#12.4 or Later to Oracle Solaris 11.1

If there is a requirement to update to just Oracle Solaris 11.1 without the SRU, then the following steps are required.

If the any of the following packages are installed, you need to either remove them and add them back after the update to Oracle Solaris 11.1 or disassociate them from the constraints on the system (called unlocking), as described in the steps below.

pkg://solaris/network/dns/bind
pkg://solaris/service/network/dns/bind
pkg://solaris/mail/fetchmail

  1. Do one of the following:

    • To remove the packages, run these commands:

      # pkg uninstall pkg://solaris/network/dns/bind
      # pkg uninstall pkg://solaris/service/network/dns/bind
      # pkg uninstall pkg://solaris/mail/fetchmail
      

      Note that it is possible to combine the commands above into one step by specifying the packages on one line:

      # pkg uninstall pkg://solaris/network/dns/bind \
      pkg://solaris/service/network/dns/bind \
      pkg://solaris/mail/fetchmail
      

      If you have any Oracle Solaris Zones installed on your system, you will need to uninstall the packages in each zone, as in the following:

      # for z in `zoneadm list`; do zlogin $z pkg uninstall pkg://solaris/network/dns/bind; done
      
    • To unlock the packages, run these commands:

      # pkg change-facet facet.version-lock.mail/fetchmail=false
      # pkg change-facet facet.version-lock.service/network/dns/bind=false
      # pkg change-facet facet.version-lock.network/dns/bind=false
      

      Note that it is possible to combine the commands above into one step by specifying the packages on one line:

      # pkg change-facet facet.version-lock.mail/fetchmail=false \
      facet.version-lock.service/network/dns/bind=false \
      facet.version-lock.network/dns/bind=false
      

      The above commands will need to be performed in each configured zone with the packages installed.

  2. Update the system.

    Once you have either removed the packages or unlocked them, you can perform a system update and reboot.

    # pkg update --be-name s11.1ga --accept
    # reboot
    
  3. Once the system has been rebooted, do one of the following, depending on what you did in Step 1 (removed the packages or unlocked the packages):

    • If you removed the packages in Step 1, then reinstall them using the pkg install command:

      # pkg install pkg://solaris/service/network/dns/bind
      # pkg install pkg://solaris/mail/fetchmail
      

      The first command above will also install pkg://solaris/network/dns/bind due to the package dependencies.

    • If you unlocked the packages in Step 1, and want to update to the first SRU for Oracle Solaris 11.1, update to that SRU first and then relock the appropriate packages:

      # pkg update
      # pkg change-facet facet.version-lock.mail/fetchmail=true
      # pkg change-facet facet.version-lock.service/network/dns/bind=true
      # pkg change-facet facet.version-lock.network/dns/bind=true
      

      Note that it is possible to combine the commands above into one step by specifying the packages on one line:

      # pkg change-facet facet.version-lock.mail/fetchmail=true \
      facet.version-lock.service/network/dns/bind=true \
      facet.version-lock.network/dns/bind=true
      

      The act of relocking the packages will update them as required.

Bugs Fixed in SRU#12.4

Below is a list of the bug fixes that have been addressed in SRU#12.4 but will not have been addressed in Oracle Solaris 11.1 until SRU#1.

Kernel fixes:

7071362 tcp_icmp_source_quench and other tunables may no longer be field modifiable
7181137 sol_umad should allow userland MAD operations in NGZs
7196540 After 7174929 integration 0.9.0 is shown for first disk in second RAID volume

Other software fixes:

7166132 vim should be able to run its test suite
7190213 libibmad and associated files need to be delivered in an NGZ 
7191495 mkisofs install is incomplete
7195687 Update fetchmail to version 6.3.22
7195704 Problem with utility/fetchmail
7196234 Problem with network/dns
7197223 vim shows high CPU usage when editing dtrace script with syntax highlighting enabled

See Also

About the Author

Peter Dennis is a Principle Engineer within the Oracle Solaris Revenue Product Engineering team. He has worked on a wide variety of technologies: file systems, volume management and backup, cluster, and general end-user utilities. He is currently the technical lead for the Oracle Solaris 11 Update release.

Revision 1.2, 11/30/2012

facebook banner twitter banner