Wednesday, January 2, 2013

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

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.



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



(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



Next, update the IPS package itself:



# pkg update pkg:/package/pkg



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



(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



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



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



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





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.

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



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


No comments:

Post a Comment