Las versiones de los paquetes principales del sistema operativo que se pueden instalar en una imagen están controladas por el paquete de incorporación pkg:/entire. Para controlar las actualizaciones del sistema, cree un paquete que especifique una versión determinada del paquete pkg:/entire como una dependencia incorporate.
En el siguiente ejemplo, se muestra un manifiesto denominado upgradectrl.p5m para un paquete de incorporación personalizada que controla la versión del paquete pkg:/entire que se puede instalar. A continuación, se describe parte de la configuración de este manifiesto.
set name=pkg.fmri value=upgradectrl@1.0 set name=pkg.summary value="Incorporation to constrain the version of the OS" set name=pkg.description value="This package controls the version of \ pkg://solaris/entire that can be installed." set name=info.classification value="org.opensolaris.category.2008:Meta Packages/Incorporations" set name=pkg.depend.install-hold value=core-os set name=variant.opensolaris.zone value=global value=nonglobal set name=variant.arch value=sparc value=i386 depend fmri=feature/package/dependency/self type=parent variant.opensolaris.zone=nonglobal depend fmri=pkg://solaris/entire type=require depend fmri=pkg://solaris/entire@0.5.11,5.11-0.175.1.0 type=incorporate
Si un usuario introduce el comando pkg update upgradectrl, también se actualiza automáticamente el paquete pkg:/entire.
Este paquete se puede instalar en zonas globales y en zonas no globales. Consulte también la descripción de la dependencia parent.
Este paquete se puede instalar en sistemas SPARC y x86.
Este paquete se puede instalar en una zona no global sólo si ya está instalado en la zona global.
El paquete upgradectrl se puede instalar solamente si el paquete pkg://solaris/entire ya está instalado o se puede instalar en esta misma operación.
El paquete pkg://solaris/entire se debe instalar en la versión especificada. Puede haber más de una versión que satisfaga una dependencia incorporate, según la cantidad de lugares de precisión que se especifiquen. En este ejemplo, 0.175.1.0 especifica Oracle Solaris 11.1 SRU 0. Este paquete de control de actualización mantendrá los sistemas en Oracle Solaris 11.1 sin actualizaciones de compatibilidad. Sin embargo, este paquete de control de actualización permitirá que se actualicen los paquetes que no están restringidos por la incorporación pkg:/entire.
Publique el paquete upgradectrl en un repositorio local basado en archivos. Este repositorio permite desarrollar y probar este nuevo paquete. Si crea un repositorio para uso general, debe incluir pasos adicionales, como la creación de un sistema de archivos independiente para el repositorio. Para obtener información sobre la creación de repositorios de paquetes para uso general, consulte Copia y creación de repositorios de paquetes en Oracle Solaris 11.2 .
Cree un repositorio de desarrollo de paquetes en el sistema. Consulte la página del comando man pkgrepo(1) para obtener más información sobre el comando pkgrepo.
$ pkgrepo create myrepo
Defina el editor predeterminado para este repositorio. El editor predeterminado es el valor de la propiedad publisher/prefix del repositorio.
$ pkgrepo -s myrepo set publisher/prefix=site
Publique el paquete upgradectrl en el repositorio de desarrollo.
$ pkgsend -s myrepo publish upgradectrl.p5m pkg://site/upgradectrl@1.0,5.11:20131104T072336Z PUBLISHED
Observe que el editor predeterminado del repositorio se aplicó al FMRI del paquete.
Examine el repositorio para confirmar que se publicó el paquete.
$ pkgrepo -s myrepo list PUBLISHER NAME 0 VERSION site upgradectrl 1.0,5.11:20131104T072336Z $ pkg list -vg myrepo FMRI IFO pkg://site/upgradectrl@1.0,5.11:20131104T072336Z ---
Envíe el paquete a un repositorio local en un sistema de archivos ZFS independiente en una ubicación compartida.
$ pkgrecv -s myrepo -d /export/IPSpkgrepos/Solaris upgradectrl Processing packages for publisher site ... Retrieving and evaluating 1 package(s) ... PROCESS ITEMS GET (MB) SEND (MB) Completed 1/1 0.0/0.0 0.0/0.0
Verifique el paquete del repositorio y la versión de pkg:/entire que incorpora.
$ pkg info -g /export/IPSpkgrepos/Solaris upgradectrl Name: upgradectrl Summary: Incorporation to constrain the version of the OS Description: This package controls the version of pkg://solaris/entire that can be installed. Category: Meta Packages/Incorporations State: Not installed Publisher: site Version: 1.0 Build Release: 5.11 Branch: None Packaging Date: November 20, 2013 01:01:05 AM Size: 0.00 B FMRI: pkg://site/upgradectrl@1.0,5.11:20131120T010105Z $ pkg contents -Hro fmri -t depend -a type=incorporate upgradectrl pkg://solaris/entire@0.5.11,5.11-0.175.1.0
Consulte Creating and Publishing a Package de Packaging and Delivering Software With the Image Packaging System in Oracle Solaris 11.2 para obtener información más detallada sobre la creación y el envío de paquetes IPS.
Configure el origen del editor site. El repositorio del sistema se actualiza automáticamente con esta información para que las zonas no globales puedan acceder a los paquetes del editor site.
$ pkg set-publisher -g /export/IPSpkgrepos/Solaris site $ pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F https://pkg.oracle.com/solaris/support/ site origin online F file:///export/IPSpkgrepos/Solaris/