Agregación y actualización de software en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Flexibilización de restricciones de versiones especificadas por incorporaciones

Un paquete de incorporación especifica las versiones de los paquetes que se pueden instalar. Estas restricciones de versión ayudan a mantener la compatibilidad del sistema entre actualizaciones. Consulte Paquetes de incorporación para obtener más información sobre los paquetes de incorporación y las restricciones.

Posiblemente sea seguro degradar o actualizar algunos paquetes incorporados a una versión diferente de la versión especificada por la incorporación. La restricción de versión se expresa mediante una faceta version-lock.package especificada en el paquete de incorporación. El valor predeterminado de la faceta version-lock.package es true. Para flexibilizar la restricción de versión en un paquete, establezca el valor de la faceta version-lock. en false.

En el siguiente ejemplo, se realiza un cambio a una versión anterior del paquete. El comando pkg update degrada y actualiza paquetes.

$ pkg list -af library/security/openssl
NAME (PUBLISHER)                    VERSION                    IFO
library/security/openssl            1.0.1.5-0.175.2.0.0.24.0  i--
library/security/openssl            1.0.1.5-0.175.2.0.0.23.0  --- 
$ pkg update library/security/openssl@1.0.1.5-0.175.2.0.0.23.0
Creating Plan (Solver setup): |
pkg update: No matching version of library/security/openssl can be installed:
  Reject: pkg://solaris/library/security/openssl@1.0.1.5,5.11-0.175.2.0.0.23.0:20130916T191702Z 
  Reason:  This version is excluded by installed incorporation 
  pkg://solaris/consolidation/userland/userland-incorporation@0.5.11,5.11-0.175.2.0.0.24.0:20131001T160408Z

El comando pkg contents muestra cómo se establece esta restricción de versión. Para flexibilizar la restricción de versión en este paquete, establezca la faceta version-lock en false. Luego, intente realizar una nueva degradación. Tenga en cuenta que no se crea un nuevo entorno de inicio, pero se crea una copia de seguridad del entorno de inicio. Consulte Propiedades de imágenes de política de entorno de inicio para obtener información sobre cuándo se crean entornos de inicio.

$ pkg contents -m userland-incorporation | grep 'library/security/openssl'
depend facet.version-lock.library/security/openssl=true 
fmri=pkg:/library/security/openssl@1.0.1.5-0.175.2.0.0.24.0 type=incorporate
$ pkg change-facet facet.version-lock.library/security/openssl=false
            Packages to update: 850
     Variants/Facets to change:   1
       Create boot environment:  No
Create backup boot environment: Yes

PHASE                                          ITEMS
Removing old actions                             1/1
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Building new search index                    850/850
$ pkg update library/security/openssl@1.0.1.5-0.175.2.0.0.23.0
            Packages to update:   1
       Create boot environment:  No
Create backup boot environment: Yes

DOWNLOAD                                  PKGS       FILES    XFER (MB)   SPEED
Completed                                  1/1       10/10      1.6/1.6    0B/s

PHASE                                          ITEMS
Removing old actions                             3/3
Installing new actions                           3/3
Updating modified actions                      14/14
Updating package state database                 Done
Updating package cache                           1/1
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Updating search index                            1/1
$ pkg list library/security/openssl
NAME (PUBLISHER)                    VERSION                   IFO
library/security/openssl            1.0.1.5-0.175.2.0.0.23.0  i--

Para evitar que este paquete se degrade o actualice, congele el paquete en la versión actual. La "f" en la lista de paquetes indica que el paquete está congelado.

$ pkg freeze -c "Downgrade to avoid bug" library/security/openssl
library/security/openssl was frozen at 1.0.1.5,5.11-0.175.2.0.0.23.0:20130916T191702Z
$ pkg list library/security/openssl
NAME (PUBLISHER)                    VERSION                   IFO
library/security/openssl            1.0.1.5-0.175.2.0.0.23.0  if-

Para volver a activar la degradación o actualización, use el comando pkg unfreeze para eliminar la congelación de la versión. Si el paquete está instalado en una versión anterior a la versión especificada en el paquete de incorporación, al establecer la faceta version-lock para este paquete en true true, se instalará la versión especificada en el paquete de incorporación.

Si otros paquetes instalados tienen relaciones de dependencia require con el paquete que desea degradar o actualizar, posiblemente también deba flexibilizar las restricciones de la versión en esos paquetes. En el siguiente ejemplo, se eliminaron las restricciones de versión en el paquete hexedit, pero se rechaza la instalación debido a las restricciones de versión en el paquete system/library.

$ pkg install editor/hexedit@1.2.12-0.175.2.0.0.25.0
Creating Plan (Solver setup): -
pkg install: No matching version of editor/hexedit can be installed:
  Reject: pkg://solaris/editor/hexedit@1.2.12-0.175.2.0.0.25.0:20131014T170634Z
  Reason:  All versions matching 'require' dependency 
  pkg:/system/library@0.5.11,5.11-0.175.2.0.0.24.0 are rejected
    Reject: pkg://solaris/system/library@0.5.11,5.11-0.175.2.0.0.24.0:20131001T152820Z

pkg://solaris/system/library@0.5.11,5.11-0.175.2.0.0.25.0:20131014T161136Z
    Reason:  This version is excluded by installed incorporation 
    pkg://solaris/consolidation/osnet/osnet-incorporation@0.5.11,5.11-0.175.2.0.0.24.0:20131001T150429Z

Además de paquetes de componentes individuales, también puede flexibilizar las restricciones de versión en las incorporaciones. En este caso, la configuración de la faceta version-lock en false permite desbloquear la incorporación del resto del sistema. Aunque el paquete de incorporación está desbloqueado, los paquetes que incorpora siguen sincronizándose.