Guide d'Oracle Solaris 11 Express Image Packaging System

Chapitre 3 Utilisation de packages

Ce chapitre vous explique comment installer et gérer des packages sur votre système et comment gérer les éditeurs de package.

Voir aussi Annexe AAide-mémoire de la commande.

Tâches de gestion des packages

Le tableau suivant présente une liste des tâches de gestion des packages et de références aux instructions de réalisation de ces tâches. Utilisez la commande pkg help pour afficher toutes les sous-commandes et options de la commande pkg.

Tableau 3–1 Liste des tâches de gestion des packages

Tâche de gestion des packages 

Instructions 

Ajouter ou mettre à jour le logiciel (packages). 

Installation ou mise à jour d'un package et Mise à jour d'un package

Exécuter une simulation d'installation des packages pour afficher les changements système consécutifs à cette installation, sans y procéder réellement. 

Visualisation d'une action d'installation sans installer

Vérifier si le package a été correctement installé et corriger les erreurs d'installation signalées.  

Vérification de l'installation d'un package et Correction des erreurs d'installation de package

Supprimer des packages. 

Désinstallation des packages et Désinstallation d'un package à partir d'un environnement d'initialisation inactif

Rechercher un package installé sur le système ou effectuer une recherche dans un référentiel distant. 

Recherche de packages

Afficher des informations sur des packages.  

Affichage du contenu d'un package, Affichage des informations sur les packages et Présentation sous forme de liste des informations d'état du package

Afficher et modifier une variante ou une facette.  

Affichage d'une variante, Modification d'une variante, Affichage d'une facette et Modification d'une facette

Afficher l'historique des opérations. 

Affichage et suppression de l'historique des opérations

Afficher des informations sur les éditeurs.  

Affichage des informations concernant l'éditeur

Gérer les éditeurs et les référentiels.  

Ajout, modification ou suppression d'un éditeur de package

Configurer une image pour installer des packages signés.  

Installation de packages signés

Si vous recevez des messages d'erreur concernant des difficultés pour contacter un référentiel ou un éditeur, vérifiez les éléments suivants.

Si vos opérations d'empaquetage sont lentes, votre disque est peut-être plein. Il peut s'avérer nécessaire de supprimer des environnements d'initialisation inutilisés pour récupérer de l'espace. Utilisez la commande beadm list pour répertorier les environnements d'initialisation existants. Reportez-vous à la page de manuel beadm(1M), au guide Gestion des environnements d’initialisation avec Oracle Solaris 11 Express ou à l'aide en ligne du Gestionnaire de packages pour obtenir des instructions sur la suppression d'environnements d'initialisation.

Installation et gestion des packages

IPS vous permet de télécharger et d'installer des packages de logiciels à partir d'un référentiel de packages IPS.

ProcedureInstallation ou mise à jour d'un package

Par défaut, la version la plus récente d'un package compatible avec le reste de l'image est installée à partir de l'éditeur préféré. Si le package est déjà installé, il est mis à jour en installant la version la plus récente du package compatible avec le reste de l'image à partir de l'éditeur qui a fourni la version actuellement installée. Si vous avez plusieurs éditeurs configurés, vous pouvez contrôler quel éditeur fournit un package en définissant la persistance et l'ordre de recherche des éditeurs ou en spécifiant l'éditeur dans l'identificateur de ressource de gestion des pannes de package. Vous pouvez également spécifier la version que vous souhaitez installer dans l'identificateur de ressource de gestion des pannes de package. Reportez-vous à Identificateurs de ressource de gestion des pannes pour obtenir la description d'un identificateur de ressource de gestion des pannes de package. Un environnement d'initialisation peut être créé lorsque vous installez, mettez à jour ou désinstallez un package. Reportez-vous à Images et environnements d'initialisation pour plus d'informations sur la création d'environnement d'initialisation et une description des options - -be-name, --require-new-be et --deny-new-be.

  1. Utilisez la commande pkg install pour installer ou mettre à jour un package.

    Vous pouvez spécifier plusieurs modèles pkg-fmri.


    # pkg install pkg-fmri
    

Exemple 3–1 Installation d'un package

Dans cet exemple, le package installadm est installé. La sortie affiche l'état du téléchargement, le nombre de packages installés, le nombre de fichiers installés, ainsi que la taille du téléchargement en mégaoctets.


# pkg install install/installadm
DOWNLOAD     PKGS       FILES    XFER (MB)
Completed     9/9   1067/1067      6.1/6.1

PHASE                       ACTIONS
Install Phase             1458/1458

PHASE                         ITEMS
Package State Update Phase     9/9
Image State Update Phase       2/2


Exemple 3–2 Installation d'un package à partir d'un éditeur spécifique

Pour installer un package d'un éditeur spécifique, indiquez le nom de l'éditeur dans la commande pkg-fmri.


# pkg install pkg://example.com/developer/sunstudio12u1


Exemple 3–3 Installation d'une version spécifique d'un package

Pour installer une version spécifique d'un package, spécifiez les informations de version dans la commande pkg-fmri.


# pkg install pkg:/developer/sunstudio12u1@12.1.1,5.11-0.111:20100306T002245Z

ProcedureMise à jour d'un package

  1. Vous pouvez utiliser les sous-commandes install ou update pour mettre à jour un package.

    La sous-commande install installe le package s'il n'est pas déjà installé sur l'image. Si vous voulez être sûr d'actualiser uniquement les packages déjà installés, et ne pas installer de nouveaux packages, utilisez la sous-commande update.

    Vous pouvez spécifier plusieurs modèles pkg-fmri.


    # pkg update pkg-fmri
    

    Attention – Attention –

    Si vous utilisez la commande pkg update sans pkg-fmri spécifié, tous les packages installés qui ont des mises à jour disponibles sont mis à jour. Voir Mise à jour d'une image .


    Si une version plus récente d'un package installé est disponible et est compatible avec le reste de l'image, le package est mis à jour vers cette version. Reportez-vous à Installation ou mise à jour d'un package pour une description plus complète des packages et des éditeurs les installant.

ProcedureVisualisation d'une action d'installation sans installer

Vous pouvez vérifier exactement ce qui sera installé avant de procéder à toute installation. Grâce à l'option -n, vous pouvez exécuter la commande install sans apporter de modification persistante. L'option -n affiche les modifications qui seraient apportées si vous exécutiez la commande sans l'option - n. Vous pouvez également utiliser l'option -n avec les sous-commandes update et uninstall.

  1. Utilisez l'option -n avec la commande pkg install pour voir ce qui serait installé sans procéder à une réelle installation.

    L'option -v donne des informations détaillées.


    # pkg install -nv pkg-fmri
    

Exemple 3–4 Visualisation d'une action d'installation sans installer

La commande suivante donne des informations sur ce qui serait installé, mais sans procéder à une réelle installation.


# pkg install -n pkg:/developer/sunstudio12u1

ProcedureVérification de l'installation d'un package

  1. Utilisez la commande pkg verify pour valider l'installation d'un package.


    $ pkg verify pkg-fmri
    

    Vous pouvez spécifier plusieurs modèles pkg-fmri. Utilisez l'option -v pour afficher des messages d'information. Utilisez l'option -q pour afficher uniquement des messages d'erreur.


Exemple 3–5 Vérification de l'installation d'un package


$ pkg verify -v e1000g
Verifying: PACKAGE                       STATUS
pkg://solaris/driver/network/e1000g      OK

ProcedureCorrection des erreurs d'installation de package

  1. Utilisez la commande pkg fix pour corriger les erreurs d'installation de package signalées par la commande pkg verify.


    $ pkg fix --accept pkg-fmri
    

    Si vous ne spécifiez pas l'option --accept et qu'un ou plusieurs packages requièrent l'acceptation d'une licence, l'opération de correction échoue. Utilisez l'option --licences pour afficher toutes les licences pour les packages installés ou mis à jour par cette opération de correction.

ProcedureDésinstallation des packages

  1. Utilisez la commande pkg uninstall pour désinstaller les packages existants.

    Vous pouvez spécifier plusieurs modèles pkg-fmri. Vous devez spécifier au moins un modèle pkg-fmri.


    # pkg uninstall pkg-fmri
    

    Utilisez l'option -r pour chercher de façon récursive les packages qui contiennent des dépendances require sur le package pkg-fmri . Reportez-vous à Images et environnements d'initialisation pour plus d'informations sur la création d'environnement d'initialisation et une description des options - -be-name, --require-new-be et --deny-new-be.

ProcedureDésinstallation d'un package à partir d'un environnement d'initialisation inactif

  1. Montez l'environnement d'initialisation inactif à partir duquel le package doit être désinstallé.


    # beadm mount inactive-be mntpt
    
  2. Désinstallez le package.


    # pkg -R mntpt uninstall pkg-fmri
    
  3. Démontez l'environnement d'initialisation précédemment monté.


    # beadm unmount inactive-be
    

ProcedureRecherche de packages

  1. Utilisez la commande pkg search pour rechercher des packages dont les données correspondent au modèle spécifié.

    Vous pouvez spécifier plus d'un modèle. Plusieurs modèles requièrent l'opérande AND.


    $ pkg search pattern
    

    Par défaut, la recherche est effectuée sur les référentiels associés à tous les éditeurs configurés pour cette image. Utilisez l'option -l pour rechercher uniquement les packages installés dans cette image. Par défaut, les correspondances s'affichent uniquement pour les versions installées ou les plus récentes des packages. Utilisez l'option -f pour afficher toutes les versions correspondantes.


Exemple 3–6 Recherche d'un package dans l'image installée

L'exemple suivant illustre la recherche du package bash dans l'image installée. La colonne INDEX indique où la correspondance a été trouvée dans les données.


$ pkg search -l bash
INDEX      ACTION VALUE                      PACKAGE
pkg.fmri   set    solaris/shell/bash         pkg:/shell/bash@4.0.28-0.149
basename   file   usr/bin/bash               pkg:/shell/bash@4.0.28-0.149
basename   dir    etc/bash                   pkg:/shell/bash@4.0.28-0.149
basename   dir    usr/share/bash             pkg:/shell/bash@4.0.28-0.149


Exemple 3–7 Recherche d'un package dans un référentiel spécifié

Dans cet exemple, deux référentiels qui ne sont pas configurés pour cette image sont explorés.


$ pkg search -s http://pkg.example1.com/release \
-s http://pkg.example2.com/release ksh


Exemple 3–8 Recherche d'un package offrant un fichier spécifique

Cet exemple montre que la bibliothèque libdhcpagent provient du package system/library.


$ pkg search -l /lib/libdhcpagent.so.1
INDEX      ACTION VALUE                 PACKAGE
path       file   lib/libdhcpagent.so.1 pkg:/system/library@0.5.11-0.149


Exemple 3–9 Recherche à l'aide de caractères génériques et de directives booléennes

Plusieurs modèles requièrent l'opérande AND par défaut. Vous pouvez également spécifier OR, * et ?.


$ pkg search netbeans AND plug*in OR ide


Exemple 3–10 Recherche avec champs

La chaîne de recherche peut être spécifiée comme l'ensemble de champs suivant :

pkg_name:action_type:key:token

Les champs manquants sont implicitement considérés comme des caractères génériques. Des caractères génériques explicites peuvent être utilisés dans les champs pkg_name et token. Les champs action_type et key doivent correspondre exactement. Reportez-vous à la section Actions de la page de manuel pkg(5) pour voir une liste de tous les types d'action. Parmi les exemples de clés se trouvent basename , description et driver_name.


$ pkg search -l 'depend::package/pkg'
INDEX       ACTION VALUE                    PACKAGE
incorporate depend package/pkg@0.5.11-0.150 pkg:/consolidation/ips/ips-incorporation@0.5.11-0.150
require     depend package/pkg              pkg:/package/pkg/package-manager@0.5.11-0.150
require     depend package/pkg              pkg:/system/zones/brand/ipkg@0.5.11-0.150

ProcedureAffichage du contenu d'un package

  1. Utilisez la commande pkg contents pour afficher les attributs d'action d'un package.

    Par défaut, seul l'attribut de chemin est indiqué. Utilisez l'option -o pour spécifier d'autres valeurs d'attributs à afficher. Vous pouvez spécifier plusieurs modèles pkg-fmri. Si vous ne spécifiez aucun modèle pkg-fmri, les données sont affichées pour tous les packages installés. Si le package n'est pas installé, vous devez utiliser l'option -r pour récupérer des données de tous les éditeurs configurés pour cette image. Lorsque vous utilisez l'option -r, vous devez spécifier un ou plusieurs modèles pkg-fmri.


    $ pkg contents pkg-fmri
    

Exemple 3–11 Présentation sous forme de liste du contenu d'un package

Dans cet exemple, la taille et le chemin de chaque fichier du package e1000g sont répertoriés :


$ pkg contents -t file -o pkg.size,path network/e1000g
PKG.SIZE PATH
  471656 kernel/drv/amd64/e1000g
  323612 kernel/drv/e1000g
    4238 kernel/drv/e1000g.conf

ProcedureAffichage des informations sur les packages

  1. Utilisez la commande pkg info pour afficher des informations sur un package.

    Vous pouvez spécifier plusieurs modèles pkg-fmri. Si vous ne spécifiez aucun modèle pkg-fmri, les informations relatives à tous les packages installés s'affichent. Si le package n'est pas installé, vous devez utiliser l'option -r pour récupérer des données de tous les éditeurs configurés pour cette image. Lorsque vous utilisez l'option -r, vous devez spécifier un ou plusieurs modèles pkg-fmri.


    $ pkg info pkg-fmri
    

Exemple 3–12 Affichage des informations sur un package spécifique

Cet exemple affiche des informations sur le package openoffice. Dans cet exemple, l'option -r est utilisée pour afficher les informations, même si le package n'est pas installé.


$ pkg info -r openoffice
          Name: openoffice
       Summary: OpenOffice.org 3.1.0
      Category: Applications/Office
         State: Not installed
     Publisher: solaris
       Version: 3.1.0
 Build Release: 5.11
        Branch: 0.111
Packaging Date: May 18, 2009 06:27:12 AM
          Size: 430.65 MB
FMRI: pkg://solaris/openoffice@3.1.0,5.11-0.111:20090518T062712Z


Exemple 3–13 Affichage des informations de copyright et de licence relatives à un package

Cet exemple affiche les informations de copyright et de licence relatives au package firefox.


$ pkg info --license firefox
Copyright (c) 2008, 2010, Oracle and/or its affiliates.  All rights reserved.

Copyright (c) 1998-2010 by Contributors. All rights reserved.
Firefox and the Firefox logos are trademarks of the Mozilla Foundation. All rights reserved.

ProcedurePrésentation sous forme de liste des informations d'état du package

Les deux sous-commandes info et list affichent le nom et l'éditeur du package et certaines informations de version. En plus du nom et de l'éditeur du package, la commande pkg info affiche le résumé, la catégorie et la taille du package. La commande pkg list indique si une mise à jour existe pour le package, si une mise à jour peut être installée dans cette image et si le package est obsolète ou renommé. La commande pkg info affiche plusieurs lignes d'informations sur chaque package. La commande pkg list affiche une ligne d'informations sur chaque package.

  1. Utilisez la commande pkg list pour afficher les informations d'état sur un package, par exemple si une mise à jour est disponible.


    $ pkg list pkg-fmri
    

    Vous pouvez spécifier plusieurs modèles pkg-fmri. Si vous ne spécifiez aucun modèle pkg-fmri, tous les packages installés sont répertoriés. La commande pkg list -u permet d'afficher la liste de tous les packages installés qui ont de nouvelles versions disponibles.

    La commande pkg list affiche les informations suivantes :

    NAME (PUBLISHER)

    Nom du package. S'il n'est pas le préféré, l'éditeur figure entre parenthèses dans la liste après le nom du package.

    VERSION

    Version et versions de branche du package. Si vous spécifiez l'option -v, la colonne VERSION n'est pas affichée. Au lieu de cela, l'identificateur de ressource de gestion des pannes du package est indiqué dans la colonne NAME.

    STATE

    Etat du package. L'état est installed (installé) ou known (connu).

    UFOXI

    Indicateurs qui donnent des informations sur la manière dont le package se rapporte à d'autres packages dans l'image.

    U

    Un u dans la colonne U indique qu'une version plus récente de ce package est disponible. La nouvelle version sera peut-être impossible à installer à cause des dépendances du package ou d'autres contraintes. Reportez-vous à l'option -a dans l'Exemple 3–16.

    O

    Un o dans la colonne O indique que ce package est obsolète. Un r dans la colonne O indique que ce package a été renommé.


Exemple 3–14 Répertorier un package installé

Dans cet exemple, le package est installé à partir de l'éditeur préféré et dispose d'une mise à jour disponible.


$ pkg list firefox
NAME (PUBLISHER)       VERSION         STATE      UFOXI
web/browser/firefox    0.5.11-0.150    installed  u----


Exemple 3–15 Liste des versions les plus récentes d'un package

Utilisez l'option -n pour répertorier les versions les plus récentes d'un package depuis l'ensemble des éditeurs configurés.


$ pkg list -n firefox
NAME (PUBLISHER)                     VERSION         STATE      UFOXI
web/browser/firefox (example.com)    0.5.11-0.151    known      -----
web/browser/firefox                  0.5.11-0.150    installed  u----


Exemple 3–16 Répertorier un package non installé

Utilisez l'option -a pour répertorier les packages installés et la version la plus récente disponible pour installation. Les packages sont disponibles pour installation s'ils sont autorisés par les incorporations installées et par les variantes de l'image. Dans cet exemple, le package n'est pas encore installé mais il est disponible pour installation à partir de l'éditeur préféré. Le package sunstudio12u1 a été renommé developer/sunstudio12u1 .


$ pkg list -a sunstudio12u1
NAME (PUBLISHER)           VERSION         STATE      UFOXI
developer/sunstudio12u1    12.1.1-0.111    known      -----
sunstudio12u1              12.1.1-1        known      --r--


Exemple 3–17 Liste des noms et résumés de packages

Utilisez l'option -s pour afficher uniquement le nom et le résumé du package.


$ pkg list -s developer/sunstudio12u1
NAME (PUBLISHER)           SUMMARY
developer/sunstudio12u1    Sun Studio - C, C++, & Fortran compilers and Tools

ProcedureAffichage d'une variante

Une variante est un composant incompatible d'un package tel qu'une architecture. Les variantes apparaissent comme des repères sur des actions IPS et déterminent si cette action est installable. Si une action comporte des repères de variante, tous les repères de variante doivent correspondre aux critères de sélection pour installer l'action.

  1. Utilisez la commande pkg variant pour afficher les valeurs des variantes d'une image.


    $ pkg variant variant_spec
    

    Vous pouvez spécifier plusieurs variant_spec.


Exemple 3–18 Affichage des valeurs de toutes les variantes


$ pkg variant
VARIANT              VALUE
variant.solaris.zone global
variant.arch         i386

ProcedureModification d'une variante

  1. Utilisez la commande pkg change-variant pour modifier la valeur d'une variante.


    # pkg change-variant -n --accept variant_spec=instance
    

    Utilisez l'option -n pour voir ce qui serait modifié si vous aviez effectué l'opération sans -n, mais sans effectuer de modification réelle. Un environnement d'initialisation peut être créé. Voir Images et environnements d'initialisation.


Exemple 3–19 Modification d'une variante


# pkg change-variant -n --accept variant.debug=false

ProcedureAffichage d'une facette

Une facette constitue un composant optionnel d'un package tel qu'un environnement linguistique. Les facettes apparaissent comme des repères sur des actions IPS et déterminent si cette action est installable. Si une action comporte des repères de facette, au moins un repère de facette doit correspondre aux critères de sélection pour installer l'action.

  1. Utilisez la commande pkg facet pour afficher les valeurs actuelles de toutes les facettes définies dans l'image active.


    $ pkg facet facet_spec
    

    Vous pouvez spécifier plusieurs facet_spec.


Exemple 3–20 Affichage de toutes les facettes de l'image active


$ pkg facet
FACETS       VALUE
facet.devel  FALSE

ProcedureModification d'une facette

  1. Utilisez la commande pkg change-facet pour modifier les valeurs actuelles d'une facette.


    # pkg change-facet -n --accept facet_spec=True|False|None
    

    Utilisez l'option -n pour voir ce qui serait modifié si vous aviez effectué l'opération sans -n, mais sans effectuer de modification réelle. Un environnement d'initialisation peut être créé. Voir Images et environnements d'initialisation.

    Si la valeur de la facette est None, sa spécification est supprimée de l'image active.


Exemple 3–21 Modification d'une facette dans l'image actuelle


# pkg change-facet facet.devel=True
$ pkg facet facet.devel
FACETS       VALUE
facet.devel  TRUE

ProcedureAffichage et suppression de l'historique des opérations

  1. Utilisez la commande pkg history pour afficher l'historique des commandes dans l'image active.

    Utilisez l'option -l pour afficher plus d'informations, notamment le résultat de la commande, le temps d'exécution de la commande, la version et le nom du client utilisé, le nom de l'utilisateur qui a effectué l'opération et les erreurs survenues lors de l'exécution de la commande. Utilisez l'option -n pour afficher uniquement le nombre spécifié d'opérations les plus récentes.


    $ pkg history
    TIME                OPERATION                 CLIENT    OUTCOME
    2010-10-16T16:32:46 update-publisher          pkg       Succeeded
    2010-10-16T16:34:42 refresh-publishers        pkg       Succeeded
    2010-10-16T16:36:04 rebuild-image-catalogs    pkg       Succeeded
    2010-10-16T16:38:17 install                   pkg       Succeeded
  2. Utilisez la commande pkg purge-history pour supprimer toutes les informations d'historique des commandes.


    # pkg purge-history
    

Gestion des éditeurs de package

IPS permet de configurer les éditeurs et les référentiels de packages.

ProcedureAffichage des informations concernant l'éditeur

  1. Utilisez la commande pkg publisher pour afficher des informations sur les éditeurs de package configurés pour cette image.


Exemple 3–22 Affichage de tous les éditeurs

Si aucune option ou aucun argument n'est spécifié, tous les éditeurs configurés pour cette image sont affichés.


$ pkg publisher
PUBLISHER                   TYPE    STATUS   URI
solaris        (preferred)  origin  online   http://pkg.oracle.com/solaris/release
example.com    (non-sticky) origin  online   http://pkg.example.com/release


Exemple 3–23 Affichage de l'éditeur préféré uniquement


$ pkg publisher -P
PUBLISHER                   TYPE    STATUS   URI
solaris        (preferred)  origin  online	http://pkg.oracle.com/solaris/release


Exemple 3–24 Affichage des informations relatives à un éditeur spécifique

Dans cet exemple, les informations sur l'éditeur solaris sont affichées.


$ pkg publisher solaris
      Publisher: solaris
          Alias: 
     Origin URI: http://pkg.oracle.com/solaris/release
        SSL Key: None
       SSL Cert: None
    Client UUID: 99e58a54-1119-11df-98e6-00262236a2ae
Catalog Updated: October 17, 2010 08:11:06 PM
        Enabled: Yes

ProcedureAjout, modification ou suppression d'un éditeur de package

  1. Utilisez la commande pkg set-publisher pour effectuer les opérations suivantes :

    • Ajout d'un éditeur. Pour supprimer un éditeur, utilisez la commande pkg unset-publisher. L'éditeur préféré ne peut pas être supprimé.

    • Spécification de l'éditeur préféré.

    • Activation ou désactivation d'un éditeur. L'éditeur préféré ne peut pas être désactivé. Un éditeur récemment ajouté est activé par défaut.

    • Définition de la persistance d'un éditeur. Un éditeur récemment ajouté est persistant par défaut. Si un éditeur n'est pas persistant, un package installé à partir de cet éditeur peut être mis à jour à partir d'un autre éditeur.

    • Définition de l'ordre de recherche des éditeurs. L'éditeur préféré est affiché en premier dans l'ordre de recherche. Un éditeur récemment ajouté est affiché par défaut en dernier dans l'ordre de recherche.

    • Ajout ou suppression d'un miroir d'éditeur.

    • Spécification des certificats et clés SSL pour un éditeur.

    • Modification de l'URI d'un éditeur.

    • Définition et rétablissement de la propriété d'un éditeur, et ajout et suppression de la valeur de propriété d'un éditeur. Voir Installation de packages signés.


Exemple 3–25 Ajout d'un éditeur

Utilisez l'option -g pour spécifier l'URI d'origine de l'éditeur.


# pkg set-publisher -g http://pkg.example.com/release example.com


Exemple 3–26 Spécification de l'éditeur préféré

Utilisez l'option -P pour spécifier un éditeur comme préféré. L'éditeur spécifié est placé au début de l'ordre de recherche. Vous pouvez spécifier l'option -P lorsque vous ajoutez un éditeur ou vous pouvez modifier un éditeur existant.


# pkg set-publisher -P example.com


Exemple 3–27 Activation ou désactivation d'un éditeur

Utilisez l'option -d pour désactiver un éditeur. L'éditeur préféré ne peut pas être désactivé. Un éditeur désactivé n'est pas utilisé dans les opérations de package telles que list ou install. Vous pouvez modifier les propriétés des éditeurs désactivés.

Utilisez l'option -e pour activer un éditeur.


# pkg set-publisher -d example2.com


Exemple 3–28 Spécification de la persistance d'un éditeur

Utilisez l'option --non-sticky pour rendre un éditeur non persistant. Un éditeur récemment ajouté est persistant par défaut. Si un éditeur n'est pas persistant, un package installé à partir de cet éditeur peut être mis à jour à partir d'un autre éditeur.

Utilisez l'option --sticky pour rendre un éditeur persistant.


# pkg set-publisher --non-sticky example.com


Exemple 3–29 Modification de l'ordre de recherche des éditeurs

L'éditeur préféré est affiché en premier dans l'ordre de recherche. Un éditeur récemment ajouté est affiché par défaut en dernier dans l'ordre de recherche. L'ordre de recherche des éditeurs sert à trouver des packages à installer. L'ordre de recherche des éditeurs est utilisé pour trouver des packages à mettre à jour si l'éditeur à partir duquel le package a été installé initialement est non persistant.

Dans l'exemple suivant, l'éditeur example2.com est défini pour être exploré avant l'éditeur example1.com. Si example1.com est l'éditeur préféré actuel, example2.com devient l'éditeur préféré.


# pkg set-publisher --search-before example1.com example2.com

Dans l'exemple suivant, l'éditeur example2.com est défini pour être exploré après l'éditeur example1.com. Si example2.com est l'éditeur préféré actuel, example1.com devient l'éditeur préféré.


# pkg set-publisher --search-after example1.com example2.com


Exemple 3–30 Ajout et suppression d'un miroir d'éditeur

Utilisez l'option -m pour ajouter un URI comme miroir pour l'éditeur spécifié. Reportez-vous à Sources et miroirs du référentiel pour obtenir une explication sur la différence entre une source et un miroir. Utilisez l'option -M pour supprimer un URI servant de miroir à l'éditeur spécifié.


# pkg set-publisher -m http://pkg.example.org/release example.com
$ pkg publisher
PUBLISHER                   TYPE    STATUS   URI
example.com    (preferred)  origin  online   http://pkg.example.com/release
example.com    (non-sticky) mirror  online   http://pkg.example.org/release


Exemple 3–31 Spécification des clés et certificats SSL

Utilisez l'option -k pour spécifier la clé SSL client. Utilisez l'option -c pour spécifier le certificat SSL client.


# pkg set-publisher -k /root/creds/example.key \
-c /root/creds/example.cert example.com

Utilisez l'option --approve-ca-cert pour ajouter le certificat spécifié comme certificat d'AC fiable. Les hachages des certificats d'AC approuvés par l'utilisateur sont répertoriés dans la sortie de la sous-commande publisher pour cet éditeur. Voir Exemple 3–24.


# pkg set-publisher --approve-ca-cert /tmp/example_file.pem example.com

Utilisez l'option --revoked-ca-cert pour traiter le certificat spécifié comme révoqué. Les hachages des certificats d'AC révoqués par l'utilisateur sont répertoriés dans la sortie de la sous-commande publisher pour cet éditeur.


# pkg set-publisher --revoked-ca-cert a12345 example.com

Utilisez l'option --unset-ca-cert pour supprimer le certificat spécifié de la liste des certificats approuvés et de la liste des certificats révoqués.


# pkg set-publisher --unset-ca-cert a12345 example.com


Exemple 3–32 Modification de l'URI d'origine d'un éditeur

Pour modifier l'URI d'origine d'un éditeur, ajoutez le nouvel URI et supprimer l'ancien. Utilisez l'option -g pour ajouter un nouvel URI d'origine. Utilisez l'option -G pour supprimer l'ancien URI d'origine.


# pkg set-publisher -g http://pkg.example.com/support \
-G http://pkg.example.com/release example.com

Installation de packages signés

Si vous installez des packages signés, définissez les propriétés de l'image et de l'éditeur décrites dans cette section pour vérifier les signatures des packages.

Propriétés de l'image pour les packages signés

Configurez les propriétés de l'image suivantes pour utiliser des packages signés.

signature-policy

La valeur de cette propriété détermine quelles vérifications sont effectuées sur des fichiers manifest lors de l'installation d'un package dans cette image. La stratégie finale appliquée à un package dépend de la combinaison des stratégies de l'image et de l'éditeur. La combinaison sera au moins aussi stricte que la plus stricte des deux stratégies prises individuellement. Les valeurs suivantes sont valides pour cette propriété.

ignore

Ignore les signatures pour tous les fichiers manifest.

verify

Vérifie que tous les fichiers manifest avec signatures sont valablement signés, mais ne nécessite pas que tous les packages installés soient signés.

require-signatures

Demande à ce que tous les nouveaux packages installés disposent au moins d'une signature valide. Les commandes pkg fix et pkg verify avertissent également lorsqu'un package installé ne possède pas de signature valide.

require-names

Suit les mêmes exigences que require-signatures mais nécessite aussi que les chaînes répertoriées dans la propriété d'image signature-required-names s'affichent en tant que nom commun des certificats utilisés pour vérifier les chaînes de confiance des signatures.

signature-required-names

La valeur de cette propriété est une liste de noms qui doivent être considérés comme des noms communs de certificats lors de la validation des signatures d'un package.

trust-anchor-directory

La valeur de cette propriété est le nom du chemin d'accès au répertoire contenant les ancres de confiance pour l'image. Ce chemin est relatif à l'image.

Propriétés de l'éditeur pour les packages signés

Configurez les propriétés de l'éditeur suivantes pour utiliser des packages signés d'un éditeur particulier.

signature-policy

La fonction de cette propriété est identique à la fonction de la propriété d'image signature-policy, si ce n'est que cette propriété s'applique uniquement aux packages de l'éditeur spécifié.

signature-required-names

La fonction de cette propriété est identique à la fonction de la propriété d'image signature-required-names, si ce n'est que cette propriété s'applique uniquement aux packages de l'éditeur spécifié.

Configuration des propriétés de signature de package

Utilisez les sous-commandes set-property, add-property-value, remove-property-value et unset-property pour configurer les propriétés de signature de package pour cette image.

Utilisez les options --set-property, --add-property-value, - -remove-property-value et --unset-property de la sous-commande set-publisher pour spécifier la stratégie de signature et les noms requis pour un éditeur particulier.


Exemple 3–33 Demande de vérification de tous les packages signés

Configurez cette image pour vérifier tous les packages signés.


# pkg set-property signature-policy verify


Exemple 3–34 Demande de signature de tous les packages

Configurez cette image pour exiger que tous les packages soient signés. Nécessite également que la chaîne oracle.com soit considérée comme un nom commun pour l'un des certificats dans la chaîne de confiance.


# pkg set-property signature-policy require-names oracle.com


Exemple 3–35 Demande de signature de tous packages d'un éditeur spécifié

Configurez cette image pour exiger que tous les packages installés à partir de l'éditeur example.com soient signés.


# pkg set-publisher --set-property signature-policy=require-signatures example.com


Exemple 3–36 Ajout d'un nom de signature requis

Cet exemple ajoute la chaîne trustedname à la liste de noms communs de l'image qui doivent être vus dans la chaîne de confiance d'une signature pour qu'elle soit considérée valide.


# pkg add-property-value signature-require-names trustedname


Exemple 3–37 Suppression d'un nom de signature requis

Cet exemple supprime la chaîne trustedname de la liste de noms communs de l'image qui doivent être vus dans la chaîne de confiance d'une signature pour qu'elle soit considérée valide.


# pkg remove-property-value signature-require-names trustedname


Exemple 3–38 Ajout d'un nom de signature requis pour un éditeur spécifié

Cet exemple ajoute la chaîne trustedname à la liste de noms communs de l'éditeur example.com qui doivent être vus dans la chaîne de confiance d'une signature pour qu'elle soit considérée valide.


# pkg set-publisher --add-property-value signature-require-names=trustedname example.com