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.