Ajout et mise à jour de logiciels dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Assouplissement des contraintes de version spécifiées par les incorporations

Un package d'incorporation indique les différentes versions de packages qui peuvent être installés. Ces contraintes de version permettent de maintenir le système dans un état fontionnel au fil des mises à jour. Reportez-vous à Les packages d'incorporation pour plus d'informations sur les packages d'incorporation et les contraintes.

La rétrogradation ou la mise à niveau de certains packages incorporés vers une version différente de celle spécifiée par l'incorporation peut ne pas présenter de risque. La contrainte de version est exprimée par une facette version-lock.package spécifiée dans le package d'incorporation. La valeur par défaut de la facette version-lock.packagepkg / readonly est true. Pour assouplir la contrainte de version sur un package, définissez la valeur de sa facette version-lock. sur false.

Dans l'exemple suivant, vous souhaitez effectuer une rétrogradation à une version antérieure du package. La commande pkg update permet de rétrograder et de mettre à niveau les packages.

$ 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

La commande pkg contents illustre la manière dont cet contrainte de version est définie. Pour assouplir la contrainte de version sur ce package, définissez sa facette version-lock sur false. Puis retentez la rétrogradation. Notez qu'aucun nouvel environnement d'initialisation n'est créé, mais qu'un environnement d'initialisation de sauvegarde est créé. Reportez-vous à la section Propriétés d'image de la stratégie d'environnement d'initialisation pour obtenir des informations sur la création des environnements d'initialisation.

$ 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--

Pour éviter que ce package soit rétrogradé ou mis à niveau, figez le package à la version actuelle. La lettre "f" qui s'affiche dans la liste de packages indique que le package est figé.

$ 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-

Pour réactiver la rétrogradation ou la mise à niveau, utilisez la commande pkg unfreeze pour supprimer le blocage de la version. Si le package est installé à une version inférieure à celle spécifiée dans le package d'incorporation, le paramétrage de la facette version-lock de ce package sur true permet l'installation de la version spécifiée dans le package d'incorporation.

Si d'autres packages installés ont des relations de dépendance require vis-à-vis du package que vous souhaitez rétrograder ou mettre à niveau, vous devrez peut-être également assouplir les contraintes de version de ces packages associés. Dans l'exemple suivant, les contraintes de version applicables au package hexedit ont été annulées, mais l'installation est rejetée en raison de contraintes de version applicables au package 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

Outre les contraintes de version des packages individuels, vous pouvez également assouplir les contraintes de version des incorporations. Dans ce cas, l'attribution de la facette version-lock sur false vous permet de déverrouiller l'incorporation et de l'isoler du reste du système. Bien que le package d'incorporation soit déverrouillé, les packages qu'elle contient continuent d'être synchronisés.