Tuesday, March 06, 2018

Solaris 11.4: Tips about Upgrading from Solaris 11.3

With the release of Oracle Solaris 11.4 Beta I am sure many have upgraded but when I tried to upgrade my Sun Ultra 24 desktop I had a few problems. This is more down to me modifying the Solaris over the years and not with Solaris 11.4.

Just checked and I installed Solaris 11 back in 20th October 2011 11:19pm.
Solaris 1.4 beta update method 1: 
 # pkg update --accept --be-name 11.4.0 --ignore-missing \  
  --reject system/input-method/ibus/anthy \  
  --reject system/input-method/ibus/pinyin \  
  --reject system/input-method/ibus/sunpinyin \  
  --reject system/input-method/library/m17n/contrib \  

Solaris 1.4 beta update method 2: 
I got some errors with the above, so I knew I had to modify my existing boot environment, which I did not want to do at this time. I went  for this approach which allows me to copy my existing boot environment (BE) and work on it without any reboots (until the very end):
 # beadm create 11.4beta  
 # beadm mount 11.4beta /mnt  
 # pkg -R /mnt update --accept --be-name 11.4.0........  
The above command means all pkg operations will be on the new Boot environment called 11.4bata which is mounted as /mnt.

Remove third part publisher packages:
I did notice that I had update errors due to other publishers software being installed, which may be down to this beta, but bare that in mind. I had to remove both SolarisStudio and http://sfe.opencsw.org packages. (Note: remove -R /mnt if working on current BE)
 # pkg -R /mnt uninstall `pkg -R /mnt list |egrep "localhosts11"| awk ' { print $1 } '`  

Unlock packages (freeze):
Solaris allows you to constrain a package version which stops it being upgraded. In my case this was need since my graphics card was no longer compatible with 11.3, so I was using a 11.2 version of the package.
 # pkg -R /mnt freeze  
 NAME                   VERSION                DATE                     COMMENT  
 driver/graphics/nvidia 0.331.38.0-0.175.2.... 20 Jun 2015 16:03:11 BST None  
 # pkg -R /mnt unfreeze driver/graphics/nvidia   

Unlock packages (facet):
If you have changed the version constraints of a package then it may be a good idea to reset them but not necessary required:
 # pkg -R /mnt facet  
 FACET                              VALUE SRC  
 consolidation/userland/userland-incorporation          False local  
 network/dns/bind                         True local  
 service/network/dns/bind                     True local  
 shell/bash                            True local  
 version-lock.consolidation/java-7/java-7-incorporation      False local  
 version-lock.consolidation/java-8/java-8-incorporation      False local  
 version-lock.consolidation/nvidia/nvidia-incorporation      False local  
 version-lock.consolidation/shell/bash              True local  
 # pkg -R /mnt change-facet consolidation/userland/userland-incorporation=true  
 Variants/Facets to change: 1  
 Updating package state database         Done  
 Updating package cache              0/0  
 Updating image state              Done  
 Creating fast lookup database          Done  
 Reading search index              Done  
 Updating search index              0/0  
 Updating package cache              3/3   

Upgrade to latest SRU and packages:
In my case I have a selection of old packages installed.
# pkg -R /mnt list | grep 0.175.1  
consolidation/admin/admin-incorporation           0.5.11-     i--
consolidation/gfx/gfx-incorporation               0.5.11-     i--
consolidation/nspg/nspg-incorporation             0.5.11-     i--
consolidation/xvm/xvm-incorporation               0.5.11-     i--
developer/library/lint                            0.5.11-    i-r
library/java/javahelp                             0.5.11-    i--
service/postrun                                   1.0-       i--
shell/ksh                                         20110208-  i-r
In the above you can ignore the first 4 since they are valid and are OK!
You can see in the following I have 85 packages which were installed for Solaris 11.2. You will always get some (check a new built system), but I have to many which may upset the upgrade.
# pkg -R /mnt list | grep 0.175.2|wc  
 85 340 6918  
# pkg -R /mnt info entire | grep Version  
    Version: 0.5.11 (Oracle Solaris  
# pkg -R /mnt update   

For interest you will see 5 Solaris 11.{0,1} packages installed in S11.4 Beta:

 S11.4# pkg list |grep 0.175  
 consolidation/admin/admin-incorporation    0.5.11-   i--  
 consolidation/gfx/gfx-incorporation        0.5.11-   i--  
 consolidation/nspg/nspg-incorporation      0.5.11-   i--  
 consolidation/xvm/xvm-incorporation        0.5.11-   i--  
 data/docbook                               2.30.0-   i-r  

Verify and Fix installation:
It is a very good practice to always do a package verify after an install/update, since this will do a double check that all has gone well and then you can fix any package problems.
 # pkg verify  
 # pkg fix library/mesa
               Packages to fix:   1
       Create boot environment:  No
 Create backup boot environment: Yes
 Repairing: pkg://solaris/x11/library/mesa@13.0.6,5.11-

 PACKAGE                                                                 STATUS
 pkg://solaris/x11/library/mesa                                           ERROR
        link: usr/lib/amd64/libGLESv1_CM.so.1
               ERROR: Missing: symbolic link does not exist

Reduce your /var/tmp usage:
In Solaris 11.4 /var/tmp has been converted to a ZFS filesystem which is a good idea, but if like me it is very big then it can take a long time to convert (done at boot time)
Also, make sure you do not have any immutable files on it as well, since that gave me problems: Solaris 11.4 Beta: update problem: pkg: Could not complete the operation because of insufficient permissions

Solaris 11.4 beta autofs maps from ldap no longer functioning :
In the Beta version you may find out your autofs maps do not work any longer this is due to some changes and it is a now a know problem: CR: 27578660 - LDAP objectclass/attribute mappings for automount behaviour regression


No comments: