Update Solaris

En está página os mostraremos los pasos para realizar una actualización del software de Solaris. Para ello primero tenemos que hacer disponible el software de la nueva versión de solaris. Esto está explicado en la página Repositorio Software que también indica el comando en el servidor que se quiere actualizar para hacer referencia al respositorio con la nueva versión.

Comprobaciones previas

El primer paso es hacer una serie de comprobaciones para asegurar un correcto proceso de actualización del software. El primer paso es comprobar a qué versión se va a realizar la actualización.

# pkg info -r entire
          Name: entire
       Summary: entire incorporation including Support Repository Update (Oracle
                Solaris 11.4.84.201.1).
   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/rs?type=doc&id=2433412.1
      Category: Meta Packages/Incorporations
         State: Not installed
     Publisher: solaris
       Version: 11.4 (Oracle Solaris 11.4.84.201.1)
        Branch: 11.4.84.0.1.201.1
Packaging Date: August  4, 2025 at 11:12:06 PM
          Size: 2.52 kB
          FMRI: pkg://solaris/entire@11.4-11.4.84.0.1.201.1:20250804T231206Z
#

La opción «-r» indica la versión más alta disponible en los repositorios. En este ejemplo se puede ver que se va a realizar una actualización a la versión 11.4.84.

A continuación vamos a realizar una prueba de actualización

# pkg update -nv

Esta comprobación se puede realizar en cualquier momento ya que no modifica el sistema, solo es una prueba para comprobar si tendríamos errores en la actualización. Si esta prueba de actualización finaliza sin errores podemos continuar con las pruebas previas.

# fmadm faulty
# svcs -xv
# zpool status -xv
all pools are healthy
#

Estas pruebas comprueban si hay fallos en el sistema, servicios con errores o problemas en el almacenamiento. Si todo va bien comprobamos el espacio disponible

# zpool list
NAME         SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
app-pool  4.34T  2.37T  1.97T  54%  1.00x  ONLINE  -
rpool       1.09T   231G   881G  20%  1.00x  ONLINE  -
#

El pool rpool debe tener, por lo menos, 30 GB libres.

Si todo está correcto podemos proceder al update.

Update del sistema

El comando para realizar el update se muestra a continuación. El comando creará un nuevo boot enviroment con el nombre sol11.4.84. Podemos elegir cualquier nombre para este boot enviroment.

# pkg update --be-name sol11.4.84 --accept
            Packages to remove:        325
           Packages to install:        133
            Packages to update:        516
            Packages to change:          1
           Mediators to change:         10
       Create boot environment:        Yes
     Activate boot environment:        Yes
      Name of boot environment: sol11.4.84
Create backup boot environment:         No
....
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                            975/975   60449/60449    1072/1072  4.1M/s

PHASE                                          ITEMS
Removing old actions                     58874/58874
Installing new actions                   48924/48924
Updating modified actions                31368/31368
Updating package state database                 Done
Updating package cache                       841/841
Updating image state                            Done
Creating fast lookup database                   Done
Updating package cache                           1/1

A clone of sol114sru25 exists and has been updated and activated.
On the next boot the Boot Environment be://rpool/sol11.4.84 will be
mounted on '/'.  Reboot when ready to switch to this updated BE.

Updating package cache                           1/1
#

Después de un perido de varias decenas de minutos el proceso termina con dos boot enviroments. El activo con la versión actual y uno nuevo con la nueva versión y que será activo en el siguiente reinicio. Por lo tanto reiniciamos el servidor

# shutdown -i6 -g0

Una vez reiniciado comprobamos que todo está correcto. Con el comando beadm podemos ver el boot enviroment antiguo y el nuevo con la nueva versión que es el activo.

# beadm list
BE Name      Flags Mountpoint Space  Policy Created
------------ ----- ---------- ------ ------ ----------------
sol11.4.42 -     -          2.26G  static 2020-10-19 22:44
sol11.4.84   NR    /          15.13G static 2025-09-08 10:05
# 

Comprobamos la versión actual. Sin la opción «-r».

# pkg info entire
          Name: entire
       Summary: entire incorporation including Support Repository Update (Oracle
                Solaris 11.4.84.201.1).
   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/rs?type=doc&id=2433412.1
      Category: Meta Packages/Incorporations
         State: Not installed
     Publisher: solaris
       Version: 11.4 (Oracle Solaris 11.4.84.201.1)
        Branch: 11.4.84.0.1.201.1
Packaging Date: August  4, 2025 at 11:12:06 PM
          Size: 2.52 kB
          FMRI: pkg://solaris/entire@11.4-11.4.84.0.1.201.1:20250804T231206Z
#

También comprobamos que todo está correcto

# fmadm faulty
# svcs -xv
# zpool status -xv
all pools are healthy
#

Y que queda suficiente espacio en rpool

# zpool list
NAME         SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
app-pool  4.34T  2.37T  1.97T  54%  1.00x  ONLINE  -
rpool       1.09T   231G   881G  20%  1.00x  ONLINE  -
# 

Si todo está correcto, la actualización del sistema, estará terminada.

Vuelta atrás

Puede ocurrir que, con la nueva versión, el sistema no funcione correctamente y sea necesario volver a la versión anterior. El procedimiento es activar el boot enviroment anterior y reiniciar.

# beadm activate sol11.4.42
# init 6

Una vez reiniciado el sistema se volverá al estado anterior a la actualización de software.