Les versions des packages de base du système d'exploitation pouvant être installés dans une image sont contrôlées par le package d'incorporation pkg:/entire. Pour contrôler les mises à jour du système, créez un package qui spécifie la création d'une version donnée du package pkg:/entire en tant que dépendance incorporate.
L'exemple suivant montre un manifeste nommé upgradectrl.p5m pour un package d'incorporation personnalisé qui contrôle la version du package pkg:/entire pouvant être installé. Certains des paramètres dans ce manifeste sont décrits ci-dessous.
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 utilisateur saisit la commandepkg update upgradectrl, le package pkg:/entire sera automatiquement mis à jour.
Ce package peut être installé dans les zones globales et les zones non globales. Reportez - vous également à la description de la dépendance parent.
Ce package peut être installé sur les deux systèmes x86 et SPARC.
Ce package peut être installé dans une zone non globale que s'il a déjà été installé dans la zone globale.
Le package upgradectrl peut être installé uniquement si le package pkg://solaris/entire est déjà installé ou peut être installé dans cette même opération.
Le package pkg://solaris/entire doit être installé avec la version spécifiée. Plusieurs versions peuvent satisfaire à une dépendance incorporate, en fonction du nombre de lieux de précision spécifiés. Dans cet exemple 0.175.1.0 indique Oracle Solaris 11.1 SRU 0. Cette mise à niveau de contrôle au package Oracle Solaris 11.1 maintenir leur système qui ne prennent pas en charge les mises à jour. Cette mise à niveau de contrôle autorisera cependant les packages non limités par l'incorporation pkg:/entire à mettre à jour.
Publier le packageupgradectrl vers un référentiel local basé sur des fichiers. Ce référentiel est utilisé pour le développement et le test de ce nouveau package. Si vous créez un référentiel pour une utilisation générale, vous devez inclure des étapes supplémentaires, telles que la création d'un système de fichiers distinct pour le référentiel. Pour plus d'informations sur la création des référentiels de packages pour un usage général, reportez-vous à Copie et création de référentiels de packages dans Oracle Solaris 11.2 .
Commande Créez un référentiel de développement de package sur votre système. Reportez - vous à la page de manuelpkgrepo(1) pour plus d'informations sur la commande pkgrepo.
$ pkgrepo create myrepo
Définir l'éditeur par défaut pour ce référentiel. L'éditeur par défaut est la valeur de la propriété publisher/prefix du référentiel.
$ pkgrepo -s myrepo set publisher/prefix=site
Publie le package upgradectrl vers le référentiel de développement.
$ pkgsend -s myrepo publish upgradectrl.p5m pkg://site/upgradectrl@1.0,5.11:20131104T072336Z PUBLISHED
Notez que le référentiel éditeur par défaut a été appliquée au FMRI de package.
Examiner le référentiel pour confirmer que le package a été publié.
$ 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 ---
Livrer le package à un référentiel local dans un système de fichiers ZFS séparé dans un emplacement partagé.
$ 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
Vérifiez le package dans le référentiel et la version de pkg:/entire incorporé.
$ 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
Reportez-vous à Creating and Publishing a Package du manuel Packaging and Delivering Software With the Image Packaging System in Oracle Solaris 11.2 pour plus d'informations sur la création de packages IPS, puis en distribuant le contenu.
Définissez l'origine de l'éditeur de site. Le référentiel système est automatiquement mis à jour avec ces informations de manière à ce que les zones non globales puissent accéder aux packages à partir du site de l'éditeur.
$ 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/