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

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Installation d'un package et mettre à jour Dépannage

Cette annexe montre la procédure de gérer des erreurs que vous êtes susceptible de plus de détails sur la mise à installer ou mettre à jour des packages. Cette annexe propose aussi et en minimisant fournit des conseils portant sur des métadonnées stockées de manière à optimiser les performances.

Initiale Troubleshooting Etapes

Vérifiez si le package que vous voulez installer est disponible à partir des éditeurs configurés et peut être installé dans cette image. La version installée de pkg:/entire ainsi que des origines configurés dans celle-ci sont des informations obligatoires. Il faudra éventuellement mettre à jour le package pkg:/entire. Il peut s'avérer nécessaire de modifier les origines de l'éditeur.

La création de deux contrôles devant être réalisée en premier pour quasiment tout problème d'installation de package, procédez comme suit :

  • Vérifiez quelle version du package d'incorporation pkg:/entire est installée.

  • Vérifiez l'origine de l'éditeur de package.

Lorsque vous avez déterminé que les packages dont vous avez besoin sont disponibles à partir des éditeurs configurés, suivez les étapes ci-dessous pour poursuivre l'installation :

  • Utilisez les options -nv chaque fois que vous effectuez une installation ou une mise à jour pour voir quelles modifications seront effectuées, par exemple les versions de package qui seront installées ou mises à jour et si un nouvel environnement d'initialisation est créé. L'option -v présente également les notes de version qui s'appliquent à cette opération d'installation ou de mise à jour.

  • Pour recevoir des messages d'erreur plus détaillés, spécifiez davantage de FMRI du package que vous souhaitez installer, y compris la version et l'éditeur.

Vérifiez la version installée de pkg:/entire

Utilisez la commande pkg list pour vérifier la version du / package d'incorporation pkg:/entire actuellement installée.

$ pkg list entire
NAME (PUBLISHER)                                  VERSION                    IFO
entire                                            0.5.11-0.175.2.0.0.34.0    i--
$ pkg list -Hv entire
pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.34.0:20140303T182643Z           i--

Le package d'incorporation pkg:/entire limite les versions de nombreux autres packages pour maintenir une image fonctionnelle et qui peut être prise en charge. Reportez-vous à Les packages d'incorporation pour plus d'informations sur les packages qui sont limités par des packages d'incorporation.

Vous ne pouvez pas installer ou mettre à jour directement un package qui est soumis aux limites du package d'incorporation pkg:/entire. Pour installer ou mettre à jour des packages qui sont limitées par pkg:/entire, vous devez mettre à jour le package pkg:/entire. Pour plus d'informations, reportez-vous à Impossible de répondre aux contraintes. Dans certains cas, vous pouvez supprimer les contraintes comme indiqué dans Mise à jour d'un package contraint par une incorporation.

Vérifiez les origines d'un éditeur de votre serveur de contenu configuré

Utilisez la commande pkg publisher vérifier la des origines de l'éditeur de package.

$ pkg publisher
PUBLISHER  TYPE    STATUS P LOCATION
solaris    origin  online F http://pkg.oracle.com/solaris/release/

Pour garantir un URI sécurisé, la clé pertiente et le certificat doivent être correctement installés, et vous devez utiliser les options -k et-c lorsque vous configurez l'éditeur.

Si votre site nécessite un proxy pour lieux externes, option, utilisez l'option --proxy de la commande pkg set-publisher permettant de définir le proxy. Reportez-vous à Spécification d'un proxy pour obtenir des instructions.

Utilisez la commande pkg publisher publisher pour visualiser des informations supplémentaires sur l'éditeur, comme la clé, les certificats et le proxy.

Le cas échéant de chacune des URI d'origine les éditeurs activés ne sont pas accessibles, l'installation ou de la mise à jour échoue, même si les emplacements dont vous avez besoin sont accessibles. Si vous ne parvenez pas à résoudre le problème qui rend l'emplacement inaccessible, vous pouvez supprimer ou désactiver l'origine inaccessible à l'aide de la commande pkg set-publisher -G ou désactiver l'éditeur avec la commande pkg set-publisher --disable. Si vous n'avez plus besoin cet éditeur, utilisez la commande pkg unset-publisher pour supprimer l'éditeur.

Vérifiez si l'origine de l'éditeur de package contient les packages dont vous avez besoin. Par exemple, si l'origine de votre éditeur solaris est définie sur la version publique du référentiel, vous ne pouvez pas mettre à jour un package vers une version uniquement disponible à partir d'un référentiel de prise en charge.

Vérifier si les packages installés requis sont disponibles

Pour mettre à jour les packages installés, installer des packages qui dépendent de packages installés, ou installer une zone non globale, le référentiel que vous avez défini comme origine de l'éditeur doit contenir au moins les mêmes logiciels déjà installés dans l'image. Le référentiel peut également contenir des versions plus anciennes ou plus récentes du logiciel, mais il doit contenir le même logiciel installé dans l'image.

Utilisez la commande pkgrepo list, et nonpas la commande pkg list lors de la vérification desp ackages installés. La commande pkg list fait toujours apparaître les packages installés, même si le package n'est disponible à partir d'une origine d'aucun éditeur configuré.

La commande suivante indique que le référentiel indiqué n'est pas une origine de l'éditeur appropriée pour cette image, car la version installée de pkg:/entire n'est pas disponible à partir de cette origine.

$ pkg list entire
NAME (PUBLISHER)                                  VERSION                    IFO
entire                                            0.5.11-0.175.2.0.0.34.0    i--
$ pkg publisher
PUBLISHER  TYPE    STATUS P LOCATION
solaris    origin  online F http://pkg.oracle.com/solaris/release/
$ pkgrepo list -Hs http://pkg.oracle.com/solaris/release entire@0.5.11-0.175.2.0.0.34.0
pkgrepo list: The following pattern(s) did not match any packages:
        entire@0.5.11-0.175.2.0.0.34.0

Si le package dont vous avez besoin n'est pas répertorié, essayez de réexécuter la commande pkgrepo refresh, puis relancez la commande pkgrepo list.

La commande suivante indique que la version installée de pkg:/entire est disponible depuis le référentiel :

$ pkgrepo list -Hs /export/IPSpkgrepos/Solaris entire@0.5.11-0.175.2.0.0.34.0
solaris   entire                   0.5.11,5.11-0.175.2.0.0.34.0:20140303T182643Z

Si un packages requis n'est pas disponible à partir d'un éditeur configuré est disponible à partir d'un autre mais l'origine de référentiel, effectuez l'une des opérations suivantes :

  • Utilisez l'option -g de la commande pkg set-publisher afin d'ajouter cette origine de l'éditeur solaris.

  • Utilisez les options -g et -G de la commande pkg set-publisher pour modifier l'origine de l'éditeur solaris.

  • Si le package dont vous avez besoin est fourni par un autre éditeur, utilisez la commande pkg set-publisher pour ajouter cet éditeur.

  • Utilisez l'option -g de la commande d'installation (install, uninstall, update, change-variant, et change-facet) pour ajouter temporairement un référentiel à la fin de la liste des référentiels dans lesquels rechercher.

Vérifiez si les packages que vous souhaitez installer sont disponibles

Exécutez la commande suivante pour vérifier si le package que vous souhaitez installer est disponible chez les éditeurs configurés. Si vous mettez à jour un package, la version du package actuellement installée et celle vers laquelle vous souhaitez mettre à jour doivent être disponibles.

$ pkg list -af package

Si le package dont vous avez besoin n'est pas répertorié, essayez d'exécuter la commande pkg refresh, puis relancez la commande pkg list.

Si le package dont vous avez besoin n'est pas répertorié, ajoutez un nouvel éditeur ou une nouvelle origine d'éditeur.

Vérifiez si les packages que vous souhaitez installer peuvent l'être dans cette image

Si la version du package de votre choix est répertoriée lorsque vous utilisez les options -af, utilisez à nouveau la même commande sans l'option -f :

$ pkg list -a package

Si la version de votre choix est toujours répertoriée, ce package n'est pas limité et vous devez être en mesure de l'installer sans installer ou mettre à jour d'autres packages.

Si la version de votre choix n'est pas répertoriée, cette version est disponible auprès des éditeurs confirés mais non installable dans cette image. Parmi les raisons pour lesquelles un package ne peut pas être installé figurent les suivantes :

  • Le package est limité par des paramètres de variante ou de facette.

  • La version du package est limitée par un package d'incorporation. Vous pouvez mettre à jour le package à l'origine de la contrainte et, dans certains cas, alléger la contrainte. Pour plus d'informations, reportez-vous à Impossible de répondre aux contraintes.

  • La version du package est contrainte par une opération consistant à figer. Exécutez la commande pkg freeze. Le blocage peut se trouver sur un package qui a une dépendance de type require sur une version différente du package à installer et les deux versions ne peuvent pas être installées en même temps.

Réessayez l'installation

Si vous spécifiez un package pour installer ou mettre à jour et que vous n'indiquez pas de l'éditeur, le premier éditeur dans l'ordre de recherche des éditeurs qui fournit un package correspondant à ce package FMRI ou un motif est utilisé en tant que source d'installation. Si cet éditeur ne fournit pas une version du package qui peut être installée sur cette image, l'opération d'installation échoue, et ce même si une autre activé éditeur fournit une version du package qui peut être installé dans cette image. Effectuez l'une des opérations suivantes pour résoudre ce problème, procédez comme suit :

  • Indiquez l'éditeur dans le package FMRI. Par exemple, spécifiez pkg://solaris/ en face du nom complet du package.

  • Utilisez l'option -P de la commande pkg set-publisher permettant de définir l' éditeur qui fournit la version du package que vous voulez ajouter en tant que premier éditeur dans l'ordre de recherche.

Utilisez les options -nv chaque fois que vous effectuez une installation ou une mise à jour pour voir quelles modifications seront effectuées, par exemple les versions de package qui seront installées ou mises à jour et si un nouvel environnement d'initialisation est créé. L'option -v présente également les notes de version qui s'appliquent à cette opération d'installation ou de mise à jour.

  • Si vous n'obtenez pas de messages d'erreur lorsque vous utilisez les options -nv, exécutez à nouveau la commande sans l'option -n pour effectuer l'installation ou la mise à jour. Vous devez vous demander si vous devez indiquer les éléments suivants : options pour résoudre BE l'installation dans un nouveau BE ou pour créer un nouvel environnement d'initialisation de sauvegarde ou si aucun environnement d'initialisation de secours seront créés par défaut.

  • Si vous ne recevez des messages d'erreur, appliquez les actions suivantes :

    • Apportez des précisions concernant la version de votre choix dans le FMRI de package pour obtenir des informations supplémentaires pour vous permettre de diagnostiquer et de corriger le problème.

    • Spécifiez plus d'options -v (par exemple, -nvv).

    • Utilisez la commande pkg history. L'option -l comporte une gamme complète de FMRI de packages modifiés. Reportez-vous à lViewing Operation History.

Si vous indiquez plusieurs packages à installer ou mettre à jour ou si vous omettez la spécification du package pour une opération de mise à jour, l'installation ou opération de mise à jour échoue si l'un des packages ne peuvent pas être installé dans cette image. Si un package ne peut pas être installé, aucun package n'est installé. Pour plus d'informations, appelez la commande à nouveau en indiquant uniquement le package qui ne peut pas être installé, indiquant le FMRI complet de ce package et en fournissant une plusieurs options -v.

Impossible d'accéder à l'éditeur ou au référentiel

Les erreurs abordées dans cette section sont liées à une incapacité à accéder à l'URI de l'éditeur.

Impossible d'accéder au référentiel de packages

Messages d'erreur :

  • Couldn't resolve host

  • Unable to contact any configured publishers

  • Unable to contact valid package repository

  • Origin URIs do not appear to point to a valid pkg repository

Utilisez la commande pkg publisher pour afficher les URI de vos éditeurs. Reportez-vous à la ligne ou à la colonne URI LOCATION dans les exemples suivants :

$ pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://pkg.oracle.com/solaris/release/
$ pkg publisher solaris
            Publisher: solaris
                Alias:
           Origin URI: http://pkg.oracle.com/solaris/release/

Si des éditeurs que vous n'utilisez plus sont répertoriés, vous devez les désactiver ou les supprimer :

$ pkg set-publisher --disable publisher
$ pkg unset-publisher publisher

Pour les éditeurs que vous utilisez, assurez-vous que les URI sont corrects.

  • Essayez de consulter l'emplacement d'origine de chaque éditeur dans un navigateur ou envoyez une commande ping à cet emplacement.

  • Essayez de répertorier les packages à cette origine à l'aide de la commande pkgrepo list.

Si un lieu d'origine n'est pas correct, utilisez les options -G et -g de la commande pkg set-publisher pour modifier l'URI en même temps.

Si l'éditeur a plusieurs origines, tous les emplacements d'origine doivent être accessibles. Si l'emplacement d'origine n'est pas accessible, utilisez l'option -G de la commandepkg set-publisher pour supprimer cette origine.

Quand un éditeur est configuré dans une zone non globale, tous les emplacements pour cet éditeur doivent être accessibles à partir de la zone globale, même si cet éditeur n'est pas configuré dans la zone globale.

Problème de certificat SSL

Message d'erreur : SSL certificate problem, verify that the CA cert is OK

Effectuez l'une ou plusieurs des opérations suivantes si la commande pkg affiche un message concernant un problème de certificat SSL :

  • Assurez-vous que la clé et le certificat requis sont installés. Les informations sur l'obtention de la clé et du certificat doivent être incluses avec d'autres informations relatives au référentiel sécurisé.

  • Utilisez les options -k et -c à l'aide de la commande pkg set-publisher permettant d'indiquer l'emplacement où la clé et le certificat sont installés. La commande pkg publisher de l'éditeur afficher l'emplacement où l'éditeur est censé trouver la clé et le certificat. Si la clé et le certificat sont installés ailleurs, reconfigurez l'éditeur en précisant les valeurs correctes pour les options -k et -c.

    Dans l'exemple suivant, la sortie présente les chemins de clé et de certificat et indique que le certificat pour l'origine de l'éditeur abc configuré est arrivé à expiration :

    $ pkg publisher abc
     Publisher: abc
    Origin URI: https://pkg.oracle.com/abc/release/
       SSL Key: /var/pkg/ssl/keyfile
      SSL Cert: /var/pkg/ssl/certfile
    Certificate '/var/pkg/ssl/certfile' has expired.
      Please install a valid certificate.
  • Vérifiez que la date et l'heure sont correctes sur le système.

  • Actualisez le service SMF ca-certificates :

    $ svcadm refresh svc:/system/ca-certificates:default
  • Si l'URI d'origine contient oc-mgmt, contactez votre représentant du support technique du centre d'opérations.


Remarque -  Un référentiel qui nécessite un certificat client SSL ne peut pas être spécifié à l'aide d'une option -g avec la commande d'installation pkg.

Emplacement introuvable

Message d'erreur : http protocol error: code: 404 reason: Not Found

Vérifiez vos URI éditeur comme décrit dans Impossible d'accéder au référentiel de packages. Si vous pouvez consulter l'emplacement ou lui envoyer une commande ping avec succès, utilisez la commande pkgrepo list pour essayer d'afficher l'un des packages dans le référentiel.

Si l'URI est un référentiel de type fichier, assurez-vous, via la commande pkg5srv, que les fichiers et répertoires peuvent être lus par l'utilisateur. Vous pouvez utiliser la commande pkgrepo verify pour vérifier si le référentiel pkg5srv est lisible par l'utilisateur.

Vérifier la configuration du serveur Web. Reportez-vous au Chapitre 5, Exécution du serveur de dépôt derrière un proxy Web du manuel Copie et création de référentiels de packages dans Oracle Solaris 11.2 pour plus d'informations.

  • Si vous exécutez le serveur de dépôt de packages derrière une instance du serveur Web Apache, incluez le paramètre suivant figurant dans votre fichier httpd.conf pour ne pas décoder les barres obliques :

    AllowEncodedSlashes NoDecode
  • Définissez le serveur de dépôt pkg/proxy_base à l'URL du référentiel du serveur Apache :

    $ svccfg -s pkg/server:repo setprop pkg/proxy_base = astring: http://pkg.example.com/myrepo
    $ svcadm refresh pkg/server:repo

Si le problème se produit dans une zone non globale, effectuez les opérations de dépannage suivantes. N'oubliez pas que les zones non globales utilisent un référentiel système spécial appelé référentiel système. Reportez-vous à la page de manuel pkg.sysrepo(1M) pour plus d'informations sur le référentiel système.

  • Vous ne pouvez pas utiliser l'option -g dans une image ayant des zones non globales. Au lieu de cela, utilisez la commande pkg set-publisherpermettant d'ajouter explicitement cet éditeur et l'origine concernés.

  • Assurez-vous que les fichiers et répertoires dans les référentiels basés sur un fichier la base de données peuvent être lus par l'utilisateur pkg5srv L'utilisateur pkg5srv exécute l'instance Apache system-repository. Reportez-vous à la section Relation entre la planification des zones globales et non globales pour obtenir des exemples qui montrent comment trouver l'emplacement d'un référentiel système.

  • Si votre site nécessite un proxy pour accéder aux emplacements externes, assurez-vous que le proxy a été indiqué correctement pour les éditeurs dans la zone globale. Utilisez l'option --proxy de la commande pkg set-publisher pour indiquer le proxy. Reportez-vous à Spécification d'un proxy pour obtenir des instructions. L'une des méthodes permettant de vérifier votre proxy est de vous assurer que vous ne recevez pas des messages d'erreur provenant de la commande pkg refresh --full.

  • Assurez-vous que le service svc:/application/pkg/system-repository:default est en ligne dans la zone globale.

  • Assurez-vous que le service svc:/application/pkg/zones-proxyd:default est en ligne dans la zone globale et que le service svc:/application/pkg/zones-proxy-client:default est en ligne dans la zone non globale.

  • Dans la zone globale, vérifiez si le fichiers de journal /var/log/pkg/sysrepo/* annoncent des erreurrs d'autorisation lors d'une tentative de lecture de fichiers ayant fait l'objet d'un rapport. Vérifiez s'il y a des erreurs 404 ou 503 signalées dans /var/log/pkg/sysrepo/access_log. Recherchez les erreurs signalées dans /var/log/pkg/sysrepo/error_log.

  • Vérifiez que localhost est défini sur 127.0.0.1 dans le fichier /etc/hosts. Vérifiez que Listen est défini sur 127.0.0.1:1008 et que ServerName est défini sur 127.0.0.1 dans le fichier /system/volatile/pkg/sysrepo/sysrepo_httpd.conf.

  • Dans la zone globale, vérifiez les lignes si le fichier /system/volatile/pkg/sysrepo/sysrepo_httpd.conf contient des lignes d'alias de la forme suivante :

    $ grep Alias /system/volatile/pkg/sysrepo/sysrepo_httpd.conf
    WSGIScriptAlias /wsgi_p5p /etc/pkg/sysrepo/sysrepo_p5p.py

    Si le fichier sysrepo_httpd.conf n'as pas de lignes d'alias, redémarrez le service sysrepo :

    $ svcadm restart svc:/application/pkg/system-repository:default

Service indisponible.

Message d'erreur : http protocol error: code: 503 reason: Service Unavailable

Utilisez la commande pkg publisher pour rechercher l'emplacement du référentiel de packages que vous tentez d'utiliser et examinez les services SMF. Utilisez la commande suivante SMF pour identifier les instances de service de référentiel de packages qui sont activées, mais qui ne sont pas en cours d'exécution et qui empêchent ainsi que toutes les instances qui empêchent une instance activée de s'exécuter :

$ svcs -xv pkg/server
svc:/application/pkg/server: default (image packaging repository)
 State: online since July 25, 2013 07:53:50 AM PDT
   See: /var/svc/log/application-pkg-server:default.log
Impact: None.

Si un service signale un problème, consultez le fichier journal répertorié dans la sortie svcs pour déterminer le problème en question.

Assurez-vous que les propriétés inst_root et port ainsi que d'autres propriétés sont correctement définies.

$ svcprop -p pkg pkg/server:default
$ svcprop -p pkg/inst_root -p pkg/port pkg/server:default
/export/IPSpkgrepos/Solaris
80

Si nécessaire, utilisez la commande svccfg pour réinitialiser les valeurs de propriété, comme indiqué dans l'exemple suivant :

$ svccfg -s pkg/server:default setprop pkg/port=1008

Utilisez la commande svcadm pour effacer, actualiser, redémarrer et activer l'instance de service selon vos besoins.

Aucune mise à jour disponible

Message d'erreur : No updates available for this image

Si vous mettez à jour un package donné, utilisez la commande suivante pour obtenir une estimation de la version du même package installée dans cette image. Si vous mettez à jour tous les packages installés ou (pkg update sans packages spécifiés ou avec '*' spécifié pour le nom du package), utilisez le nom pkg:/entire pour le package dans ces commandes.

$ pkg list -v package

Si aucune version n'est actuellement installée, utilisez la commande pkg install au lieu de pkg update.

Si une version de package est déjà installée, la commande suivante permet d'afficher les différentes versions de package disponibles à partir des éditeurs configurés :

$ pkg list -afv package

Si le package comportant le numéro de version le plus élevé est déjà installé, il est possible qu'il n'existe pas de version plus récente.

Si une nouvelle version est présente, déterminez l'emplacement du référentiel du package où la version la plus récente est disponible et utilisez la commande pkg set-publisher pour réinitialiser l'URI d'origine URI ou pour ajouter une origine appropriée de l'éditeur. Si nécessaire, installez la clé et le certificat requis et utilisez les options -k et -c permettant de les spécifier. Utilisez la commande pkgrepo list pour vérifier que la version actuellement installée du package est également disponible à partir des éditeurs configurés.

Réexécutez la commande pkg update en indiquant les options -nv, y compris la dernière version (ou le mot-clé latest) dans le FMRI des packages que vous souhaitez installer, comme indiqué dans l'exemple suivant. En fournissant davantage d'informations dans les noms de packages, vous pouvez obtenir plus d'informations sur les erreurs.

$ pkg update -nv package@latest

Les packages ne peuvent pas être installés

Message d'erreur : No matching version of package can be installed

La commande suivante permet d'afficher les différentes versions de package disponibles à partir des packages configuré des éditeurs :

$ pkg list -afv package

Indiquez une plus grande partie du FMRI du package que vous souhaitez installer. La première correspondance trouvée n'est peut-être pas installable dans cette image, mais il est possible que la version que vous souhaitez installer puisse l'être. Si le FMRI plus spécifique ne peut toujours pas être installé, indiquer plus d'informations sur le FMRI permet d'obtenir plus d'informations sur la raison pour laquelle le package ne peut pas être installé.

Vérifiez que la version du package que vous souhaitez installer ou mettre à jour n'est pas figée. Utilisez la commande pkg freeze sans arguments pour afficher la liste de tous les packages dont les versions sont figées.

La commande suivante permet d'afficher la version du package pkg:/entire installé :

$ pkg list -v entire

Vous ne pouvez pas installer ou mettre à jour un package qui est limité par le package d'incorporation pkg:/entire ou par un autre package d'incorporation. Vous devez mettre à jour le package d'incorporation. Pour plus d'informations, reportez-vous à Impossible de répondre aux contraintes.

Impossible de répondre aux contraintes

Message d'erreur : No solution was found to satisfy constraints

Ce message indique que vous avez tenté d'installer une version d'un package qui ne correspond pas à la version dans lequel le package est contraint par un package d'incorporation. Reportez-vous à Les packages d'incorporation pour plus d'informations sur les packages d'incorporation et les contraintes.

Les incorporations contraignent un ensemble de packages à des versions qui travaillent ensemble pour garantir une image fonctionnelle et qui peut être prise en charge. C'est la raison pour laquelle vous ne devez pas mettre à jour le package qui est contraint par une incorporation. Au lieu de cela, vous devez mettre à jour le package d'incorporation, ce qui entraîne la mise à jour de tous les packages dans un nouvel ensemble de versions testées de manière groupée.

Lorsque les packages sont en cours de modification (par exemple, en cours de mise à jour), le clientpkg et examine les packages liés et leurs dépendances. Si un package dépendant ne peut pas être installé ou mis à jour, un message d'erreur séparé est généré pour chaque package qui a une dépendance sur le package et qui ne peut pas être installé ou mis à jour. Le moyen le plus efficace de façon à pouvoir gérer un grand nombre de messages d'erreur consiste à examiner les messages d'erreur qui sont les plus en retrait en premier.

Mise à jour d'un package contraint par une incorporation

Messages d'erreur :

  • Aucune version appropriée de package installé n'a été trouvée

  • Toutes les versions correspondant à la dépendance 'incorporate' package sont rejetés

  • Cette version est exclue par la version d'installation spécifiée

  • Cette version est exclue par l'incorporation installée

Pour les packages qui sont limités par une incorporation, la meilleure pratique consiste à mettre à jour le package d'incorporation, en conservant tous les packages contraints dans un ensemble testé de manière groupée.

Si vous voulez quand même mettre à jour un seul package à partir d'une incorporation, vérifiez si le package a une facette version-lock définie sur true. Si un package est associé à une facette version-lock, vous devez le déverrouiller à partir de son incorporation. Définsez la facette version-lock sur false pour supprimer la contrainte, puis réessayez d'installer ou de mettre à jour le package. Spécifiez les options -nv et la version du package souhaitée dans le FMRI du nom d'un package. Voir Assouplissement des contraintes de version spécifiées par les incorporations.

Exemple A-1  Déverrouillage et mise à jour de l'environnement Java Runtime

L'exemple suivant montre comment mettre à jour le package runtime/java/jre-7. Le package jre-7 est limité par le package consolidation/java/java-incorporation, et le package java-incorporation est à son tour sous contraintes par le package d'incorporation pkg:/entire.

La commande suivante indique que la version 0.175.2.0.0.9.0 de jre-7 est actuellement installée et montre qu'une version plus récente est disponible à partir des référentiels de packages configurés :

$ pkg list -af runtime/java/jre-7
NAME (PUBLISHER)                                  VERSION                    IFO
runtime/java/jre-7                                1.7.0.21-0.175.2.0.0.13.0  ---
runtime/java/jre-7                                1.7.0.17-0.175.2.0.0.9.0   i--

La suppression de l'option -f permet de voir quelles versions sont disponibles pour mise à jour. La sortie pkg list suivante indique qu'aucune version plus récente ne peut être installée dans cette image, et la sortie de la commande pkg update confirme cet état. L'option -n indique quelles sont les éventuelles modifications faites mais n'ont aucune incidence.

$ pkg list -a runtime/java/jre-7
NAME (PUBLISHER)                                  VERSION                    IFO
runtime/java/jre-7                                1.7.0.17-0.175.2.0.0.9.0   i--
$ pkg update -nv runtime/java/jre-7
No updates available for this image.

Pour afficher davantage d'informations sur les raisons pour lesquelles ce package ne peut pas être mis à jour, indiquez la version vers laquelle vous souhaitez mettre à jour. La sortie illustrée dans l'exemple suivant indique que le package java-incorporation@0.5.11,5.11-0.175.2.0.0.9.0 installé ne permet pas l'installation du package jre-7@1.7.0.21-0.175.2.0.0.13.0. Le package java-incorporation@0.5.11,5.11-0.175.2.0.0.13.0 permettrait l'installation du package jre-7@1.7.0.21-0.175.2.0.0.13.0, mais le package d'incorporation installé entire@0.5.11,5.11-0.175.2.0.0.12.0 ne permet pas l'installation du packagejre-7@1.7.0.21-0.175.2.0.0.13.0.

$ pkg update -nv runtime/java/jre-7@1.7.0.21-0.175.2.0.0.13.0
pkg update: No solution was found to satisfy constraints

maintained incorporations:
  [output omitted]
  pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z

Plan Creation: dependency error(s) in proposed packages:
  [output omitted]
  No suitable version of required package pkg://solaris/consolidation/java/java-
incorporation@0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z found:
    Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1
75.2.0.0.9.0:20130304T213946Z
    Reason:  All versions matching 'incorporate' dependency pkg:/runtime/java/jr
e-7@1.7.0.17,5.11-0.175.2.0.0.9.0 are rejected
      Reject:  pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:20
130304T214022Z
      Reason:  This version excluded by specified installation version
        Reject:  pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:
20130304T214022Z
        Reason:  This version excluded by specified installation version
      Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0
.175.2.0.0.13.0:20130429T145534Z
      Reason:  This version is excluded by installed incorporation pkg://solaris
/entire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z

Plan Creation: Errors in installed packages due to proposed changes:
  [output omitted]
  No suitable version of installed package pkg://solaris/consolidation/java/java
-incorporation@0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z found
    Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1
75.2.0.0.9.0:20130304T213946Z
    Reason:  All versions matching 'incorporate' dependency pkg:/runtime/java/jr
e-7@1.7.0.17,5.11-0.175.2.0.0.9.0 are rejected
      Reject:  pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:20
130304T214022Z
      Reason:  This version excluded by specified installation version
    Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1
75.2.0.0.13.0:20130429T145534Z
    Reason:  This version is excluded by installed incorporation pkg://solaris/e
ntire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z

La meilleure pratique consiste à mettre à jour le package entire. La mise à jour du package entire mettrait à jour de la mise à jour le package java-incorporation, ce qui permettrait de mettre à jour le package jre-7. Dans cet exemple, vous devez mettre à jour les packages Java et vous ne pouvez pas transférer votre image vers une version mise à jour de entire.

La version du logiciel possible d'installer est soumise aux contraintes de la définition de la facette version-lock pour le package d'incorporation Java. Pour mettre à jour le logiciel sans mettre à jour d'autres logiciels Java, déverrouillez la facette version-lock, puis mettez à jour le package d'incorporation Java. Pour plus d'informations sur les facettes version-lock, reportez-vous Assouplissement des contraintes de version spécifiées par les incorporations.

La commande suivante remplace la valeur de la facette version-lock du package java-incorporation installé sur false. Le nombre de packages à mettre à jour est le nombre de packages installés dans cette image, car chaque package de la facette est coché pour cette image.

$ pkg change-facet \
facet.version-lock.consolidation/java/java-incorporation=false
            Packages to update: 856
     Variants/Facets to change:   1
       Create boot environment:  No
Create backup boot environment: Yes

Planning linked: 1/1 done
PHASE                                          ITEMS
Removing old actions                             1/1
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Building new search index                    856/856

La commande suivante indique que le valeur de facette a été modifiée :

$ pkg facet
FACETS                                                   VALUE
facet.version-lock.consolidation/java/java-incorporation False

Vu que la commande suivante indique l'option -n, cette commande affiche ce qui changerait, mais n'apporte pas réellement de modifications à votre image.

$ pkg update -nv java-incorporation
            Packages to update:         2
     Estimated space available:  80.91 GB
Estimated space to be consumed: 687.28 MB
       Create boot environment:        No
Create backup boot environment:       Yes
          Rebuild boot archive:        No

Changed packages:
solaris
  consolidation/java/java-incorporation
    0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z -> 0.5.11,5.11-0.175.2.0.0.13.0
:20130429T145534Z
  runtime/java/jre-7
    1.7.0.17,5.11-0.175.2.0.0.9.0:20130304T214022Z -> 1.7.0.21,5.11-0.175.2.0.0.
13.0:20130429T145626Z

La commande suivante permet de lancer la mise à jour. Cette commande effectue la mise à jour dans l'image actuelle. Vous pouvez être amené à utiliser l'option --be-name pour effectuer la mise à jour dans un nouvel environnement d'initialisation.

$ pkg update -v java-incorporation
            Packages to update:         2
     Estimated space available:  80.91 GB
Estimated space to be consumed: 687.28 MB
       Create boot environment:        No
Create backup boot environment:       Yes
          Rebuild boot archive:        No

Changed packages:
solaris
  consolidation/java/java-incorporation
    0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z -> 0.5.11,5.11-0.175.2.0.0.13.0
:20130429T145534Z
  runtime/java/jre-7
    1.7.0.17,5.11-0.175.2.0.0.9.0:20130304T214022Z -> 1.7.0.21,5.11-0.175.2.0.0.
13.0:20130429T145626Z
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                2/2       171/171    61.9/61.9    0B/s

PHASE                                          ITEMS
Removing old actions                             7/7
Installing new actions                           6/6
Updating modified actions                    170/170
Updating package state database                 Done
Updating package cache                           2/2
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Updating search index                            2/2

La commande suivante permet de vérifier que le package jre-7 est mis à jour dans cette image. Si vous effectuez la mise à jour dans un nouvel environnement d'initialisation, utilisez les commandes beadm mount et pkg -R pour effectuer la vérification dans ce nouvel environnement d'initialisation.

$ pkg list jre-7
NAME (PUBLISHER)                                  VERSION                    IFO
runtime/java/jre-7                                1.7.0.21-0.175.2.0.0.13.0  i--

Mise à jour d'une incorporation quand une dépendance appropriée ne peut pas être trouvée

Message d'erreur : A version for 'incorporate' dependency cannot be found

Reportez-vous à Les packages d'incorporation pour plus d'informations sur les packages d'incorporation et leurs dépendances incorporate.

Les exemples de raisons pour lesquels un package d'incorporation peut échouer à être mis à jour comprend les états d'installation suivants d'une dépendance incorporate du package d'incorporation :

  • Le package dépendant est figé à une autre version.

  • Le package dépendant est déjà installé dans une version supérieure.

  • Le package dépendant est installé à partir d'un autre éditeur, et cet éditeur est résident ("sticky").

Exemple A-2  Mise à jour de pkg:/entire : quand une dépendance est déverrouillée et mise à jour séparément.

L'exemple suivant tente de mettre à jour tous les packages installés car aucun nom de package n'est indiqué. L'un des packages installés que cette opération tente de mettre à jour est le package d'incorporation pkg:/entire. Cet exemple montre une dépendance incorporate de pkg:/entire qui est déjà installé dans une version supérieure.

$ pkg update --be-name s11.2
Creating Plan (Solver setup): /
pkg update: No solution was found to satisfy constraints
Plan Creation: Package solver has not found a solution to update to latest available versions.
This may indicate an overly constrained set of packages are installed.

latest incorporations:
[output omitted]
pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z

The following indicates why the system cannot update to the latest version:

No suitable version of required package pkg://solaris/entire@0.5.11,5.11-0.175.2
.0.0.10.0:20130318T181506Z found:
 Reject:  pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z
 Reason:  A version for 'incorporate' dependency on pkg:/consolidation/ub_javavm
/ub_javavm-incorporation@0.5.11,5.11-0.175.2.0.0.9.0 cannot be found

Ce message précise que la version du package d'incorporation pkg:/entire que le système a tenté de mettre spécifie une version du package ub_javavm-incorporation impossible à installer. Un package ne peut pas être installé car aucun package n'est installé et la mise à jour échoue.

Les techniques suivantes peuvent fournir davantage d'informations concernant les raisons de l'échec de l'installation du package ub_javavm-incorporation :

  • Utilisez les options -v. Par exemple, utilisez -v ou -vv pour obtenir une sortie verbose plus détaillée.

  • Indiquer le package à mettre à jour. En général, en indiquant plus d'informations, on obtient des messages plus détaillés. Par exemple, outre le nom de la version, incluez le package dans le package FMRI.

La commande suivante inclut une option - v et spécifie de mettre à jour le package entire@0.5.11,5.11-0.175.2.0.0.10.0 copié depuis le message ci-dessus. Cette commande spécifie également l'option -n au lieu de l'option --be-name. L'option -n montre ce qui serait fait, sans pour autant apporter des modifications à cette image.

$ pkg update -nv entire@0.5.11,5.11-0.175.2.0.0.10.0
Creating Plan (Solver setup): /
pkg update: No matching version of entire can be installed:
 Reject:  pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z
 Reason:  All versions matching 'require' dependency pkg:/consolidation/ub_javav
m/ub_javavm-incorporation are rejected
  Reject:  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,
5.11-0.151.0.1:20101105T053418Z
  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.17
5.0.0.0.2.0:20111019T144756Z
  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.17
5.0.10.1.0.0:20120920T143020Z
  Reason:  Excluded by proposed incorporation 'entire'
  Newer version pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.
5.11,5.11-0.175.2.0.0.13.0:20130429T145201Z is already installed
  Reject:  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,
5.11-0.175.2.0.0.9.0:20130304T213739Z
  Reason:  Newer version pkg://solaris/consolidation/ub_javavm/ub_javavm-incorpo
ration@0.5.11,5.11-0.175.2.0.0.13.0:20130429T145201Z is already installed
 Reject:  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5
.11-0.175.2.0.0.13.0:20130429T145201Z
 Reason:  Excluded by proposed incorporation 'entire'

Ces messages indiquent que la version du packageub_javavm-incorporation actuellement installé dans cette image est plus récente que celle spécifiée par le package d'incorporation ub_javavm-incorporation qui serait installé par l'opération de mise à jour.

La commande suivante affiche la version du package d'incorporation ub_javavm-incorporation actuellement installé.

$ pkg list ub_javavm-incorporation
NAME (PUBLISHER)                                  VERSION                    IFO
consolidation/ub_javavm/ub_javavm-incorporation   0.5.11-0.175.2.0.0.13.0    i--

La commande suivante montre la version du package ub_javavm-incorporation spécifié par le package d'incorporation pkg:/entire que le système a tenté de mettre à jour. La version du package d'incorporation pkg:/entire que le système a tenté de mettre à jour est copiée à partir du premier message "Rejeter" dans la sortie ci-dessus. L'option -r cherche ce package dans les réferentiels de packages configuré, et non pas dans les référentiels de packages de l'image préinstallée.

$ pkg contents -Hrt depend \
-a facet.version-lock.consolidation/ub_javavm/ub_javavm-incorporation=true \
-o fmri entire@0.5.11,5.11-0.175.2.0.0.10.0
consolidation/ub_javavm/ub_javavm-incorporation@0.5.11-0.175.2.0.0.9.0

Pour résoudre ce problème, vous pouvez également demander à l'opération de mise à jour de mettre à jour tous les packages, à l'exception de packages spécifiés spécialement. Utiliser une ou plusieurs options --reject de la commande pkg update pour effectuer la mise à jour sans tentative de mise à jour des packages spécifiés dans les options --reject. Il est possible d'utiliser des caractères génériques dans les arguments --reject. Dans la commande suivante, les packages à rejeter sont copiés à partir des messages "Reject" qui précédent le message "Reason: Newer version is already installed".

$ pkg update -v --be-name s11.2 \
--reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.151*' \
--reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.175.0*' \
--reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.175.2.0.0.9.0*'

Conseil  - Soyez vigilant lorsque vous spécifiez des arguments --reject : tous les packages qui correspondent à l'argument --reject et qui sont déjà installés seront désinstallés.

Mise à jour d'une incorporation lorsqu'une dépendance installée n'est pas autorisée

Messages d'erreur :

  • The installed package package is not permissible

  • Excluded by proposed incorporation

Si vous recevez ces messages d'erreur, le package est vraisemblablement un package clé du système d'exploitation qui doit rester synchronisé avec d'autres packages du système d'exploitation. Utilisez la commande pkg facet pour contrôler la valeur de la facette facet.version-lock.package. Si la valeur de cette facette version-lock est false, utilisez la commande pkg change-facet pour modifier la valeur de cette facette sur true et réexécutez la commande de mise à jour à nouveau.

Package requis introuvable

Message d'erreur : A version for 'require' dependency cannot be found

Si vous recevez un message comme le suivant indiquant qu'un package obligatoire est introuvable, vérifiez si le package est disponible à partir des éditeurs configurés.

pkg update: No solution was found to satisfy constraints
Plan Creation: Package solver has not found a solution to update to
latest available versions.
This may indicate an overly constrained set of packages are installed.
[output omitted]
No suitable version of required package package1 found:
Reject: package1
Reason: A version for 'require' dependency package2 cannot be found

Utilisez la commande suivante afin d'indiquer si package2 est disponible à partir de vos éditeurs de packages configurés :

$ pkg list -afv package2

Utilisez la commande pkg publisher pour vérifier l'origine de votre éditeur. L'éditeur de ce package est indiqué après pkg:// en mode Full FMRI. Vous pouvez être amené à modifier par l'emplacement d'origine de l'éditeur. Si l'emplacement est un référentiel de packages local, il vous faudra peut - être mettre à jour le référentiel.

Package requis rejeté

Messages d'erreur :

  • No solution was found to satisfy constraints

  • All versions matching 'require' dependency package are rejected

Dans la sortie suivante à partir de la commande pkg update, le message d'erreur initial précise qu'une version appropriée du package desktop-incorporation requis est introuvable. La raison pour laquelle le package desktop-incorporation ne convient pas est que l'un de ses packages dépendants est introuvable. Dans la mesure où aucune version appropriée n'est trouvée, le package desktop-incorporation est rejeté. pkg update échoue car le package desktop-incorporation est requis par l'incorporation pkg:/entire. La commande suivante indique que le package desktop-incorporationest requis par l'incorporation pkg:/entire.

$ pkg search -Hlo pkg.name require:consolidation/desktop/desktop-incorporation

Le message d'erreur suivant précise qu'il est impossible de trouver une version appropriée du package requis python-extra-26. La raison pour laquelle le package python-extra-26 ne convient pas est que le package python-extra-26 nécessite le package desktop-incorporation, et qu'aucune version appropriée desktop-incorporation n'a été trouvée.

Cette information indique que la solution à cet échec de la mise à jour est de trouver une procédure d'installation de la version requise du package desktop-incorporation.

pkg update: No solution was found to satisfy constraints

maintained incorporations:
  [output omitted]

Plan Creation: dependency error(s) in proposed packages:
  [output omitted]
  No suitable version of required package pkg://solaris/consolidation/desktop
/desktop-incorporation@0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z found:
    Reject: pkg://solaris/consolidation/desktop/desktop-incorporation
@0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z
    Reason: A version for 'incorporate' dependency on pkg:/library/python-2
/python-sexy-26@0.1.9-0.175.0.0.0.1.0 cannot be found
  No suitable version of required package pkg://solaris/library/python-2
/python-extra-26@2.6.4-0.175.1.0.0.15.0:201205014T200156Z found:
    Reject:  pkg://solaris/library/python-2/python-extra-26@
2.6.4-0.175.1.0.0.15.0:201205014T200156Z
    Reason: All versions matching 'require' dependency pkg:/consolidation
/desktop/desktop-incorporation are rejected
      Reject: pkg://solaris/consolidation/desktop/desktop-incorporation
@0.5.11,5.11-0.175.0.0.0.2.0:20111019T132128Z
  [output omitted]
pkg://solaris/consolidation/desktop/desktop-incorporation
@0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z

Les commandes suivantes indiquent que le package ne peut pas être-a été trouvé pour le package desktop-incorporation requis n'est pas obligatoire. Le package python-sexy-26 est incorporé par le package desktop-incorporation, mais cela n'est pas obligatoire.

$ pkg search -Hlo pkg.name require:library/python-2/python-sexy-26
$ pkg search -Hlo pkg.name incorporate:library/python-2/python-sexy-26
consolidation/desktop/desktop-incorporation

La dépendance incorporate précise que si le package python-sexy-26 est installé, il doit être installé dans la version spécifiée. Toutefois, vu qu'aucun package n'exige le package python-sexy-26, le package python-sexy-26 n'a pas besoin d'être installé. Par conséquent, l'échec de la mise à jour l'une des solutions à ce problème consiste à désinstaller le packag python-sexy-26 . Une autre version de ce package est actuellement installée, la mise à jour n'a pas pu localiser la version spécifiée par l'incorporation desktop-incorporation. Si vous le désinstallez le package, le processus de mise à jour n'a pas besoin de trouver le package mis à jour.

Si vous avez besoin du package python-sexy-26, et que vous ne souhaitez pas le désinstaller, trouvez un référentiel de packages qui fournit pkg:/library/python-2 /python-sexy-26@0.1.9-0.175.0.0.0.1.0. Utilisez la commande pkg set-publisher afin d'ajouter à votre origine de l'éditeur ce référentiel ou à l'aide de la commande pkgrecv pour ajouter ce package jeu à votre origine de l'éditeur actuellement configurée.

Packages non mis à jour comme prévu

Message d'erreur : pkg update: The installed package package is not permissible.

Si vous utilisez des caractères génériques avec une opération de mise à jour, vous risquez de ne pas voir les messages d'erreur, même si certaines de livraison qui auraient dû être mis à jour les packages n'ont pas été mises à jour. Vous pourrez être en présence d'un message d'erreur si vous avez indiqué un nom de package sans caractères génériques.

Par exemple, l'opération suivante peut se terminer sans erreur sans que les packages soient mis à jour pour autant, même si vous avez vérifié que de nouveaux packages sont disponibles auprès de vos éditeurs configurés :

$ pkg update '*'

Pour obtenir des informations supplémentaires, au lieu d'utiliser le caractère générique, spécifiez la version de pkg:/entire que vous voulez mettre à jour :

$ pkg list -Hafv entire
pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.9.0:20130304T214506Z  ---
$ pkg update -nv pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.9.0:20130304T214506Z
Creating Plan (Solver setup): -
pkg update: The installed package compress/zip is not permissible.
  Reject:  pkg://solaris/compress/zip@3.0,5.11-0.175.2.0.0.7.0:20121119T070339Z
  Reason:  Excluded by proposed incorporation 'consolidation/userland/userland-incorporation'

Dans cet exemple, le package compress/zip empêche la mise à jour de package d'incorporation userland-incorporation qui empêche la mise à jour de l'incorporation pkg:/entire. La commande suivante vous permet d'afficher plus d'informations sur le package compress/zip :

$ pkg list compress/zip
NAME (PUBLISHER)  VERSION                   IFO
compress/zip      3.0-5.11-0.175.2.0.0.7.0  if-

Cette sortie indique que le package compress/zip est figé. Ce package ne peut pas être mis à jour car il est figé.

$ pkg unfreeze compress/zip
compress/zip was unfrozen.

Avec le package compress/zip débloqué, l'opération initiale pkg update '*' doit mettre à jour tous les packages dans l'image pour lesquels des mises à jour sont disponibles. Reportez-vous à Verrouillage de packages en une version spécifiée pour plus d'informations sur les commandes pkg freeze et pkg unfreeze.

L'erreur pkg sync-linked affichée dans Impossible d'installer le package lié de synchronisation est similaire, mais indique qu'il s'agit d'un package dans une zone non globale qui empêche la mise à jour.

Impossible d'installer le package lié de synchronisation

Message d'erreur : pkg sync-linked: The installed package package is not permissible.

Un package sync-linked est un package dans une zone non globale. Un package peut être rejeté au motif d'une incohérence de version avec l'image parent.

Linked progress: -pkg: update failed (linked image exception(s)):

A 'sync-linked' operation failed for child 'zone:z1' with an unexpected
return value of 1 and generated the following output:

pkg sync-linked: The installed package package is not permissible.
  Reject:  package
  Reason:  Parent image has a incompatible newer version: package

Ce message d'incompatibilité peut s'afficher pour les raisons suivantes :

  • Les noyaux de système d'exploitation doivent présenter le même niveau de version dans les zones non globales comme dans la zone globale. Vous ne pouvez pas mettre à jour ces packages séparément dans une zone non globale. De même, figer un de ces packages dans une zone non globale entraîne l'échec de la mise à jour pour la zone globale et toutes les zones non globales.

    La commande suivante vous permet d'afficher la liste des packages devant rester en synchronisation entre la zone globale et zones non globales :

    $ pkg search -o pkg.name :depend:parent:
  • Si vous mettez à jour un BE dont des zones sont configurées BE, il est impossible de monter ce BE en question, et vous devez utiliser la commande pkg -R de mise à jour de ce BE de remplacement (ABE), dans la mesure où la configuration de l'éditeur dans l'environnement ABE est différente de la configuration du BE actuel. Des zones non globales dans la configuration de l'éditeur l'ABE utiliser le BE à partir de celui qui est actif.

Impossible d'installer des zones non globales

Message d'erreur : The following pattern(s) did not match any allowable packages. Try using a different matching pattern, or refreshing publisher information

Les noyaux de système d'exploitation doivent présenter le même niveau de version dans les zones non globales comme dans la zone globale. Si l'origine de l'éditeur solaris dans cette image est définie sur un référentiel de packages qui ne contient pas les mêmes versions des packages système qui sont installés dans la zone globale, essayer d'installer une zone non globale génère l'erreur suivante :

$ zoneadm -z myzone install
The following ZFS file system(s) have been created:
    rpool/export/zones/myzone
Progress being logged to /var/log/zones/zoneadm.20131104T181301Z.myzone.install
       Image: Preparing at /export/zones/myzone/root.

AI Manifest: /tmp/manifest.xml.9daq.i
SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
  Zonename: myzone
Installation: Starting ...

            Creating IPS image
Startup linked: 1/1 done
            Installing packages from:
                solaris
                    origin:  http://pkg.oracle.com/solaris/release/
            Error occurred during execution of 'generated-transfer-4606-1' checkpoint.
            Failed Checkpoints:

            Checkpoint execution error:

                The following pattern(s) did not match any allowable packages. Try
                using a different matching pattern, or refreshing publisher information:

Installation: Failed.  See install log at /system/volatile/install.4606/install_log
ERROR: auto-install failed.

Pour installer une zone non globale, le référentiel que vous avez défini comme éditeur solaris d'origine doit contenir au moins le même système logiciel installé dans la zone globale sur lequel vous installez la zone non globale. Le référentiel peut également contenir des versions plus anciennes ou plus récentes du logiciel, mais il doit contenir le même logiciel que celui de la zone globale. La commande suivante indique que le référentiel /export/IPSpkgrepos/Solaris est une origine de l'éditeur appropriée pour cette zone globale, car ce référentiel contient la même version du package pkg:/entire que celui installé dans la zone globale :

$ pkg list entire
NAME (PUBLISHER)      VERSION                   IFO
entire                0.5.11-0.175.2.0.0.26.0   i--
$ pkgrepo list -H -s /export/IPSpkgrepos/Solaris \
entire@0.5.11-0.175.2.0.0.26.0
solaris       entire       0.5.11-0.175.2.0.0.26.0:20131028T190148Z
$ pkg set-publisher -G '*' -M '*' -g /export/IPSpkgrepos/Solaris/ solaris

Impossible de modifier l'image

Message d'erreur : pkg: The image cannot be modified as it is currently in use by another package client

Le message d'erreur doit inclure le nom et le pid du client possédant l'image verrouillé, comme indiqué dans l'exemple suivant :

pkg: The image cannot be modified as it is currently in use by another package
client: pkg on cbusl0406l, pid 26604.

Relancez la commande pkg dès que le processus en cours (26604 dans cet exemple) s'arrête. Si le processus ne se termine pas rapidement, utilisez, par exemple, ptree -a pour commencer à examiner le processus.

Le processus de package en cours sur cette image peut être le Gestionnaire de mises à jour qui vérifie si des mises à jour sont disponibles. Reportez-vous à Utilisation du Gestionaire de mise à jour pour plus d'informations sur la tâche de Gestionnaire de mise à jour cron et le service pkg/update.

Les fichiers ont été récupérés

Le message d'information suivant est suivi du chemin d'accès des fichiers qui ont été récupérés et l'emplacement temporaire dans lequel les fichiers ont été déplacés :

The following unexpected or editable files and directories were
salvaged while executing the requested package operation; they
have been moved to the displayed location in the image:

Il s'agit d'un message d'information et il peut être ignoré ou faire l'objet d'une action si nécessaire.

Les répertoires sont des références prises en compte dans IPS. Lorsque le dernier package installé dans l'image faisant explicitement ou implicitement référence à un répertoire ne le fait plus, ce répertoire est supprimé. Si ce répertoire contient des objets système de fichiers non empaquetés, ces éléments sont déplacés vers $IMAGE_META/lost+found. Les objets de système de fichiers non empaquetés qui sont des fichiers et répertoires IPS n'ont pas été livrés par un package. La valeur de IMAGE_META est en général /var/pkg. Reportez-vous à la section Fichiers de la page de manuel pkg (5) pour plus d'informations sur le répertoire IMAGE_META.

Minimiser les métadonnées d'images stockées

Le répertoire /var/pkg regroupe l' ensemble de métadonnées pour l'image. Ce répertoire peut être assez volumineux. Ne supprimez rien manuellement dans le répertoire /var/pkg.

Assurez- vous quela valeur de la propriété de l'image flush-content-cache-on-success est paramétrée sur true. La valeur de la propriété flush-content-cache-on-success est définie, par défaut sur true. Lorsque la valeur de flush-content-cache-on-success est true, les fichiers mis en cache sont enlevées lorsque des opérations pkg install et pkg update terminent avec succès. Si la propriété flush-content-cache-on-success est définie sur false, vous pouvez utiliser la commande illustre l'exemple suivant pour réinitialiser la valeur à true :

$ pkg property flush-content-cache-on-success
PROPERTY                       VALUE
flush-content-cache-on-success False
$ pkg set-property flush-content-cache-on-success true
$ pkg property -H flush-content-cache-on-success
flush-content-cache-on-success True

Suite au vidage de la mémoire cache du contenu (définir flush-content-cache-on-success surtrue) certaines opérations pkg peuvent prendre plus de temps.

Les zones non globales disposent un autre cache que vous pourrez définir avec l'option -c de /usr/lib/pkg.sysrepo. Vous pouvez définir la taille maximale du cache avec l'option -s. Consultez la page de manuel pkg.sysrepo(1M) .

Augmenter les performances d'installation d'un package

Les étapes ci-après peuvent vous aider à améliorer les performances, à savoir : package d'installation et de mise à jour

  • Assurez - vous que votre capacité du pool de stockage ZFS est inférieure à 80%.

    $ zpool list
    NAME  SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
    rpool 186G 75.2G 111G 40% 1.00x ONLINE -
  • Utilisez un référentiel de packages local. Reportez-vous à la section Copie et création de référentiels de packages dans Oracle Solaris 11.2 .

  • Si http_proxy est défini, consultez si les performances du proxy.