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.
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.
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.
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.
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.
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.
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.
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.
Les erreurs abordées dans cette section sont liées à une incapacité à accéder à l'URI de l'éditeur.
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.
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.
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
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.
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
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.
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.
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 RuntimeL'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--
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").
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*'
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.
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.
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.
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.
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.
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
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.
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.
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) .
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.