Guide du développeur pour l'empaquetage d'applications

Chapitre 4 Vérification et transfert d'un package

Le présent chapitre vous explique comment vérifier l'intégrité de votre package et le transférer sur un support de distribution, notamment une disquette ou un CD-ROM.

La liste suivante répertorie les informations fournies dans ce chapitre :

Vérification et transfert d'un package (liste de tâches)

Le tableau suivant décrit les étapes à suivre pour vérifier l'intégrité et le transfert de votre package sur un support de distribution.

Tableau 4–1 Vérification et transfert d'un package (liste de tâches)

Tâche 

Description 

Instructions 

1. Créez votre package. 

Créez votre package sur disque. 

Chapitre2Création d'un package

2. Installez votre package. 

Testez votre package en l'installant et en vérifiant que l'installation s'effectue sans erreurs. 

Procédure d'installation d'un package sur un système autonome ou un serveur

3. Vérifiez l'intégrité de votre package. 

Utilisez la commande pkgchk pour vérifier l'intégrité de votre package. 

Procédure de vérification de l'intégrité d'un package

4. Obtenez d'autres informations sur le package. 

Facultatif. Utilisez les commandes pkginfo et pkgparam pour effectuer la vérification d'un package.

Affichage d'informations supplémentaires sur les packages installés

5. Supprimez le package installé. 

Utilisez la commande pkgrm pour supprimer votre package du système.

Procédure de suppression d'un package

6. Transférez votre package sur un support distribution. 

Utilisez la commande pkgtrans pour transférer votre package (au format package) sur un support de distribution.

Procédure de transfert d'un package sur un support de distribution

Installation de packages logiciels

Les packages logiciels sont installés à l'aide de la commande pkgadd. Cette commande transfère le contenu d'un package logiciel, du support de distribution ou du répertoire, sur le système afin de l'installer.

Cette section fournit des instructions de base pour installer votre package afin de vérifier qu'il s' installe correctement.

Base de données des logiciels d'installation

Les informations se rapportant à l'ensemble des packages installés sur un système sont conservées dans la base de données des logiciels d'installation. Chaque objet de package dispose d'une entrée qui fournit des informations le concernant, notamment son nom, son emplacement et son type. Une entrée indique le package auquel l'élément appartient, les autres packages susceptibles de faire référence à l'élément et d'autres informations, notamment le nom de chemin, l'emplacement et le type de l'élément. Les entrées sont automatiquement ajoutées et supprimées par les commandes pkgadd et pkgrm. Vous pouvez afficher les informations figurant dans la base de données à l'aide des commandes pkgchk et pkginfo.

Deux types d'information sont associés à chaque élément de package. L'attribut décrit l'élément en soi. Par exemple, les droits d'accès à l'élément, l'ID du propriétaire de l'élément et l'ID du groupe de l'élément sont des attributs. Les informations relatives au contenu décrivent le contenu de l'élément, notamment la taille du fichier et la date/heure de dernière modification.

La base de données des logiciels d'installation indique l'état du package. Un package peut être entièrement installé (la procédure d'installation s'est déroulée correctement) ou partiellement installé (la procédure d'installation ne s'est pas déroulée correctement).

Lorsqu'un package est partiellement installé, cela signifie que certaines parties du package ont été installées avant la suspension de la procédure d'installation, et qu'une partie du package est donc installée et consignée en tant que tel dans la base de données alors que l'autre partie ne l'est pas. Lorsque vous réinstallez le package, un message vous invite à redémarrer l'installation de l'endroit où elle a été suspendue car la commande pkgadd est en mesure d'accéder à la base de données et de détecter les parties déjà installées. Vous pouvez également supprimer les parties déjà installées, en vous basant sur les informations figurant dans la base de données des logiciels d'installation à l'aide de la commande pkgrm.

Interaction avec la commande pkgadd

Si la commande pkgadd rencontre un problème, elle recherche en premier lieu des instructions dans le fichier d'administration de l'installation. (Voir admin(4) pour plus d'informations.) S'il ne contient aucune instruction ou si le paramètre correspondant dans le fichier d'administration a la valeur ask, la commande pkgadd affiche un message décrivant le problème et contenant une invite. L'invite est habituellement Do you want to continue with this installation?. Vous devez répondre à l'invite par yes, no ou quit.

Si vous avez spécifié plusieurs packages, no arrête l'installation du package en cours d'installation mais pkgadd poursuit l'installation des autres packages. quit indique que pkgadd doit arrêter l'installation de tous les packages.

Installation de packages sur des systèmes autonomes ou des serveurs dans un environnement homogène

Cette section décrit l'installation des packages sur un système autonome ou un serveur dans un environnement homogène.

ProcedureProcédure d'installation d'un package sur un système autonome ou un serveur

  1. Créez votre package.

    Si nécessaire, reportez-vous à Création d'un package.

  2. Connectez-vous en tant que superutilisateur.

  3. Ajoutez le package logiciel sur le système.


    # pkgadd -d device-name [pkg-abbrev...]

    -d nom-périphérique

    Indique l'emplacement du package. Notez que nom-périphérique peut être un nom de chemin d'accès à un répertoire complet ou être les identificateurs d'une bande, d'une disquette ou d'un disque amovible.

    pkg-abrév

    Correspond au nom d'un ou plusieurs packages à ajouter (séparés par des espaces). En cas d'omission, pkgadd installe tous les packages disponibles.


Exemple 4–1 Installation de packages sur des systèmes autonomes et des serveurs

Pour installer un package logiciel nommé pkgA à partir d'un périphérique à bande nommé /dev/rmt/0, saisissez la commande suivante :


# pkgadd -d /dev/rmt/0 pkgA

Vous pouvez également installer plusieurs packages simultanément, à condition de séparer les noms de package par un espace, comme suit :


# pkgadd -d /dev/rmt/0 pkgA pkgB pkgC

Si vous ne nommez pas le périphérique sur lequel le package réside, la commande regarde dans le répertoire spool par défaut (/var/spool/pkg). Si le package ne s'y trouve pas, l'installation échoue.


Voir aussi

Si vous êtes prêt à passer à l'étape suivante, reportez-vous à Procédure de vérification de l'intégrité d'un package.

Vérification de l'intégrité d'un package

La commande pkgchk permet de contrôler l'intégrité des packages, qu'ils soient installés sur un système ou en format package (prêts à être installés avec la commande pkgadd). Elle confirme la structure d'un package ou, les fichiers et répertoires installés, ou encore affiche des informations sur les objets du package. La commande pkgchk peut répertorier ou vérifier les éléments suivants :

Pour plus d'informations sur cette commande, reportez-vous à pkgchk(1M).

La commande pkgchk effectue deux types de contrôle. Elle contrôle les attributs de fichier (droits d'accès et de propriété d'un fichier et, nombres majeurs/mineurs de périphériques spéciaux en mode bloc ou en mode caractère) et le contenu des fichiers (taille, somme de contrôle et date de modification). Par défaut, la commande contrôle à la fois les attributs des fichiers et le contenu des fichiers.

La commande pkgchk compare également les attributs et le contenu des fichiers du package installé avec la base de données des logiciels d'installation. Les entrées concernant un package peuvent avoir été modifiées depuis l'installation ; par exemple, un autre package peut avoir modifié un élément du package. La base de données reflète ce changement.

ProcedureProcédure de vérification de l'intégrité d'un package

  1. Installez votre package.

    Si nécessaire, reportez-vous à Procédure d'installation d'un package sur un système autonome ou un serveur.

  2. Vérifiez l'intégrité de votre package.


    # pkgchk  [-v] [-R root-path] [pkg-abbrev...]

    -v

    Répertorie les fichiers à mesure qu'ils sont traités. 

    -R chemin-root

    Spécifie l'emplacement du système de fichiers root du système client. 

    pkg-abrév

    Correspond au nom d'un ou plusieurs packages à vérifier (séparés par des espaces). En cas d'omission, pkgchk vérifie tous les packages disponibles.


Exemple 4–2 Vérification de l'intégrité d'un package

L'exemple suivant indique la commande à utiliser pour vérifier l'intégrité d'un package installé.


$ pkgchk pkg-abbrev
$

S'il contient des erreurs, la commande pkgchk les imprime. Sinon, elle n'imprime rien et renvoie le code de sortie 0. Si vous n'indiquez aucune abréviation de package, elle vérifie tous les packages présents dans le système.

Vous pouvez aussi vous servir de l'option -v qui imprime la liste des fichiers du package en l'absence d'erreurs. Exemple :


$ pkgchk -v SUNWcadap
/opt/SUNWcadap
/opt/SUNWcadap/demo
/opt/SUNWcadap/demo/file1
/opt/SUNWcadap/lib
/opt/SUNWcadap/lib/file2
/opt/SUNWcadap/man
/opt/SUNWcadap/man/man1
/opt/SUNWcadap/man/man1/file3.1
/opt/SUNWcadap/man/man1/file4.1
/opt/SUNWcadap/man/windex
/opt/SUNWcadap/srcfiles
/opt/SUNWcadap/srcfiles/file5
/opt/SUNWcadap/srcfiles/file6
$

Si vous devez vérifier un package installé sur le système de fichiers root d'un système client, utilisez la commande suivante :


$ pkgchk -v -R root-path pkg-abbrev

Voir aussi

Si vous êtes prêt à passer à l'étape suivante, reportez-vous à Procédure d'obtention d'informations à l'aide de la commande pkginfo.

Affichage d'informations supplémentaires sur les packages installés

Vous pouvez vous servir de deux autres commandes pour afficher des informations sur les packages installés :

Commande pkgparam

La commande pkgparam vous permet d'afficher les valeurs associées aux paramètres que vous spécifiez sur la ligne de commande. Les valeurs sont extraites du fichier pkginfo d'un package spécifique ou du fichier que vous précisez. Une valeur de paramètre s'affiche sur chaque ligne. Vous pouvez au choix afficher les valeurs seules ou les paramètres et leurs valeurs.

ProcedureProcédure d'obtention d'informations à l'aide de la commande pkgparam

  1. Installez votre package.

    Si nécessaire, reportez-vous à Procédure d'installation d'un package sur un système autonome ou un serveur.

  2. Affichez des informations supplémentaires sur votre package.


    # pkgparam [-v] pkg-abbrev [param...]

    -v

    Affiche le nom du paramètre et sa valeur. 

    pkg-abrév

    Correspond au nom d'un package spécifique. 

    param

    Spécifie un ou plusieurs paramètres dont la valeur est affichée. 


Exemple 4–3 Obtention d'informations à l'aide de la commande pkgparam

Par exemple, pour n'afficher que les valeurs, utilisez la commande suivante :


$ pkgparam SUNWcadap
none
/opt
US/Mountain
/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin
/usr/sadm/sysadm
SUNWcadap
Chip designers need CAD application software to design abc
chips.  Runs only on xyz hardware and is installed in the usr
partition.
system
release 1.0
SPARC
venus990706083849
SUNWcadap
/var/sadm/pkg/SUNWcadap/save
Jul 7 1999 09:58
$

Pour afficher les paramètres et leurs valeurs, utilisez la commande suivante :


$ pkgparam -v SUNWcadap
pkgparam -v SUNWcadap
CLASSES='none'
BASEDIR='/opt'
TZ='US/Mountain'
PATH='/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin'
OAMBASE='/usr/sadm/sysadm'
PKG='SUNWcadap'
NAME='Chip designers need CAD application software to design abc chips.  
Runs only on xyz hardware and is installed in the usr partition.'
CATEGORY='system'
VERSION='release 1.0'
ARCH='SPARC'
PSTAMP='venus990706083849'
PKGINST='SUNWcadap'
PKGSAV='/var/sadm/pkg/SUNWcadap/save'
INSTDATE='Jul 7 1999 09:58'
$

Ou, pour afficher la valeur d'un paramètre spécifique, utilisez le format suivant :


$ pkgparam SUNWcadap BASEDIR
/opt
$

Pour plus d'informations, reportez-vous à pkgparam(1).


Voir aussi

Si vous êtes prêt à passer à l'étape suivante, reportez-vous à Procédure de suppression d'un package.

Commande pkginfo

Vous pouvez afficher des informations sur les packages installés à l'aide de la commande pkginfo. Cette commande dispose de plusieurs options permettant de personnaliser le format et le contenu de l'affichage.

Vous pouvez demander des informations sur un nombre d'instances de package de votre choix.

Affichage par défaut de la commande pkginfo

Lorsque vous exécutez la commande pkginfo sans indiquer d'options, celle-ci affiche la catégorie, l'instance de package et le nom de package de tous les packages entièrement installés sur votre système. L'affichage est organisé en catégories comme illustré dans l'exemple suivant :


$ pkginfo
.
.
.
system      SUNWinst       Install Software
system      SUNWipc        Interprocess Communications
system      SUNWisolc      XSH4 conversion for ISO Latin character sets
application SUNWkcspf      KCMS Optional Profiles
application SUNWkcspg      KCMS Programmers Environment
application SUNWkcsrt      KCMS Runtime Environment
.
.
.
$

Personnalisation du format de l'affichage de la commande pkginfo

L'affichage de la commande pkginfo peut utiliser trois formats différents : court, extrait et long.

Le format court est le format par défaut. Il ne comprend que la catégorie, l'abréviation du package et le nom complet du package, comme illustré à la rubrique Affichage par défaut de la commande pkginfo.

Le format extrait comprend l'abréviation du package, le nom du package, l'architecture du package (si elle est disponible) et la version du package (si elle est disponible). Utilisez l'option -x pour demander le format extrait, comme illustré dans l'exemple suivant :


$ pkginfo -x
.
.
.
SUNWipc         Interprocess Communications
                (sparc) 11.8.0,REV=1999.08.20.12.37
SUNWisolc       XSH4 conversion for ISO Latin character sets
                (sparc) 1.0,REV=1999.07.10.10.10
SUNWkcspf       KCMS Optional Profiles
                (sparc) 1.1.2,REV=1.5
SUNWkcspg       KCMS Programmers Environment
                (sparc) 1.1.2,REV=1.5
.
.
.
$

L'utilisation de l'option -l permet d'obtenir un affichage au format long qui inclut toutes les informations sur un package, comme illustré dans l'exemple suivant :


$ pkginfo -l SUNWcadap
   PKGINST:  SUNWcadap
      NAME:  Chip designers need CAD application software to
design abc chips.  Runs only on xyz hardware and is installed
in the usr partition.
  CATEGORY:  system
      ARCH:  SPARC
   VERSION:  release 1.0
   BASEDIR:  /opt
    PSTAMP:  system980706083849
  INSTDATE:  Jul 7 1999 09:58
    STATUS:  completely installed
     FILES:     13 installed pathnames
                 6 directories
                 3 executables
              3121 blocks used (approx)
$

Description des paramètres du format long de la commande pkginfo

Le tableau suivant décrit les paramètres pouvant être affichés pour chaque package. Un paramètre et sa valeur ne s'affichent que si une valeur a été attribuée au paramètre en question.

Tableau 4–2 Paramètres de package

Paramètre 

Description 

ARCH

Architecture prise en charge par le package. 

BASEDIR

Répertoire de base dans lequel le package logiciel réside (indiqué si le package est réadressable). 

CATEGORY

Catégories de logiciels auxquelles le package appartient (par exemple, system ou application).

CLASSES

Liste des classes définies pour un package. L'ordre de la liste détermine l'ordre dans lequel les classes sont installées. Les classes apparaissant en début de liste sont installées en premier (support par support). Ce paramètre peut être modifié par le script request.  

DESC

Description du package. 

EMAIL

Adresse e-mail utilisée par les utilisateurs pour adresser leurs questions. 

HOTLINE

Informations sur l'obtention de l'aide sur ce package via le service d'assistance téléphonique. 

INTONLY

Indique que le package ne doit être installé de manière interactive que lorsqu'une valeur non nulle est définie. 

ISTATES

Liste des états d'exécution autorisés pour l'installation d'un package (par exemple, S s 1).

MAXINST

Nombre maximum d'instances de package autorisées sur une machine simultanément. Par défaut, une seule instance de package est autorisée. 

NAME

Nom du package décrivant habituellement l'abréviation du package. 

ORDER

Liste des classes définissant l'ordre dans lequel elles doivent être placées sur le support. Utilisée par la commande pkgmk pour créer le package. Les classes non définies dans ce paramètre sont placées sur le support par les procédures de tri standard.

PKGINST

Abréviation du package à installer. 

PSTAMP

Horodatage de production du package. 

RSTATES

Liste des états d'exécution autorisés pour la suppression d'un package (par exemple, S s 1).

ULIMIT

S'il est défini, ce paramètre est transféré en tant qu'argument à la commande ulimit qui établit la taille maximale d'un fichier lors de l'installation. Ceci ne concerne que les fichiers créés par des scripts de procédure.

VENDOR

Nom du fournisseur ayant fourni le package logiciel. 

VERSION

Version du package.  

VSTOCK

Numéro de stock fourni par le fournisseur. 

Pour plus d'informations sur la commande pkginfo, reportez-vous à la page de manuel pkginfo(1).

ProcedureProcédure d'obtention d'informations à l'aide de la commande pkginfo

  1. Installez votre package.

    Si nécessaire, reportez-vous à Procédure d'installation d'un package sur un système autonome ou un serveur.

  2. Affichez des informations supplémentaires sur votre package.


    # pkginfo [-x | -l] [pkg-abbrev]

    -x

    Affiche les informations sur le package au format extrait. 

    -l

    Affiche les informations sur le package au format long. 

    pkg-abrév

    Correspond au nom d'un package spécifique. En cas d'omission, la commande pkginfo affiche les informations sur l'ensemble des packages installés au format par défaut.

Autres ressources

Si vous êtes prêt à passer à l'étape suivante, reportez-vous à Procédure de suppression d'un package.

Suppression d'un package

Étant donné que la commande pkgrm met à jour les informations de la base de données des produits logiciels, il est important lors de la suppression d'un package d'utiliser la commande pkgrm, même si vous êtes tenté d'utiliser à la place la commande rm. Vous pouvez par exemple utiliser la commande rm pour supprimer un fichier binaire exécutable ; toutefois, cela ne revient pas au même qu'utiliser la commande pkgrm pour supprimer le package logiciel contenant le fichier binaire exécutable. Utiliser la commande rm pour supprimer les fichiers d'un package endommage la base de données des produits logiciels. Si vous souhaitez véritablement supprimer un seul fichier, vous pouvez utiliser la commande removef qui met à jour la base de données des produits logiciels correctement.

ProcedureProcédure de suppression d'un package

  1. Connectez-vous au système en tant que superutilisateur.

  2. Supprimez un package installé.


    # pkgrm pkg-abbrev ...

    pkg-abrév

    Correspond au nom d'un ou plusieurs packages à supprimer (séparés par des espaces). En cas d'omission, pkgrm supprime tous les packages disponibles.

  3. Utilisez la commande pkginfo pour vérifier que le package a été correctement supprimé.


    $ pkginfo | egrep pkg-abbrev
    

    Si pkg-abrév est installé, la commande pkginfo renvoie une ligne d'informations le concernant. Sinon, pkginfo renvoie l'invite système.

Transfert d'un package sur un support distribution

La commande pkgtrans déplace les packages et effectue leur conversion au format package. Vous pouvez utiliser la commande pkgtrans pour effectuer les conversions suivantes d'un package pouvant être installé :

ProcedureProcédure de transfert d'un package sur un support de distribution

  1. Créez votre package comme un package au format répertoire si cela n'est pas déjà fait.

    Pour plus d'informations, reportez-vous à Procédure de création d'un package.

  2. Installez votre package pour vérifier qu'il s'installe correctement.

    Si nécessaire, reportez-vous à Procédure d'installation d'un package sur un système autonome ou un serveur.

  3. Vérifiez l'intégrité de votre package.

    Si nécessaire, reportez-vous aux rubriques Procédure de vérification de l'intégrité d'un package, Procédure d'obtention d'informations à l'aide de la commande pkginfo et Procédure d'obtention d'informations à l'aide de la commande pkgparam.

  4. Supprimez le package installé du système.

    Si nécessaire, reportez-vous à la rubrique Procédure de suppression d'un package.

  5. Transférez le package (au format package) sur un support de distribution.

    Pour effectuer une conversion de base, exécutez la commande suivante :


    $ pkgtrans device1 device2 [pkg-abbrev...]

    périphérique1

    Correspond au nom du périphérique sur lequel le package réside actuellement. 

    périphérique2

    Correspond au nom du périphérique sur lequel le package converti doit être transféré. 

    [pkg-abrév]

    Correspond à une ou plusieurs abréviations de package. 

    Si aucun nom de package n'est spécifié, tous les packages résidant sur périphérique1 sont convertis et transférés sur périphérique2.


    Remarque –

    Si plusieurs instances d'un même package résident sur périphérique1, vous devez utiliser l'identificateur d'instance du package. Pour plus d'informations sur l'identificateur de package, reportez-vous à Définition d'une instance de package. Lorsqu'une instance de package à convertir se trouve déjà sur périphérique2, la commande pkgtrans n'effectue pas la conversion. Vous pouvez utiliser l'option -o pour indiquer à la commande pkgtrans d'écraser toute instance sur le périphérique de destination et l'option -n pour lui indiquer de créer une nouvelle instance s'il en existe déjà une. Notez que cette vérification n'est pas utilisée lorsque périphérique2 prend en charge un format flux de données.


Autres ressources

Vous venez d'achever les étapes nécessaires à la conception, à la création, à la vérification et au transfert de votre package. Si vous souhaitez consulter quelques études cas, reportez-vous au Chapitre5Création d'un package : Études de cas. Si vous êtes intéressé par des idées de conception de package avancées, reportez-vous au Chapitre6Techniques avancées de création de packages.