La commande swpackage regroupe des produits logiciels définis dans un PSF au sein d'un dépôt. Vous pouvez alors utiliser le logiciel du dépôt avec d'autres commandes SD-UX.
Généralités
Les caractéristiques et limitations sont les suivantes :
Utilise le fichier PSF pour organiser les fichiers en produits, sous-produits et groupes de fichiers.
Peut comporter des scripts de commande et des fichiers PSF pour spécifier en détail la gestion de l'installation du logiciel sur le système cible.
Établit les autorisations des fichiers à intégrer.
Permet d'intégrer un produit simple, mono-groupe, aussi bien qu'un produit complexe avec plusieurs groupes et sous-produits.
Permet la recomposition (avec modification) de produits existants.
La commande swpackage ne fournit qu'une seule interface utilisateur de ligne de commande. Il n'existe donc pas d'interface graphique utilisateur pour les tâches d'intégration.
Possibilité de créer des dépôts sur répertoire (notamment sur CD) ou sur bande (utile pour la distribution de logiciels via l'Internet).
Pas d'enregistrement automatique de dépôts nouvellement créés. Vous devez utiliser la commande swreg (voir « Enregistrement et annulation d'enregistrement des dépôts (swreg) »).
Le processus swpackage
Le processus swpackage comprend au moins quatre phases :
Tableau 10-4 Phases du processus swpackage
| I. Sélection | swpackage lit le PSF |
| II. Analyse | La commande swpackage analyse les tâches et les caractéristiques d'intégration avant toute intégration effective du logiciel vers le dépôt ou la bande cible. swpackage compare le logiciel à intégrer avec le dépôt cible pour s'assurer que le traitement d'intégration peut aller à son terme. |
| III. Construction | swpackage place les fichiers sources et les informations dans un objet produit, puis crée/insère le produit dans le dépôt de distribution. swpackage crée le dépôt, mais ne l'enregistre pas. Pour créer un nouveau dépôt sur l'hôte local, vous devez disposer d'autorisations SD-UX suffisantes. Si la cible (destination) est une bande, un dépôt temporaire est créé. |
| IV. Création de bande | (Optionnel) Cette phase n'a lieu que si vous créez une distribution sur bande. swpackage copie les fichiers source et un catalogue de dépôt temporaire sur la bande. (Notez que swpackage ne peut pas compresser des fichiers en cas d'écriture sur bande.) |
La Figure 10-1 : « Vue d'ensemble du processus d'intégration » représente une vue d'ensemble de la session swpackage.
Phase I : Sélection
Lorsque vous exécutez swpackage, vous devez spécifier un fichier PSF ainsi que les options que vous souhaitez inclure. La commande swpackage commence la session en indiquant la source, la cible, les logiciels sélectionnés et les options choisies afin de :
Déterminer le produit, le sous-produit et le groupe de fichiers requis pour la structure
Déterminer les fichiers contenus dans chaque groupe
Déterminer les attributs associés avec chacun des objets
Vérifier la syntaxe du PSF et terminer la session s'il y a des erreurs de validation
Phase II : Analyse
swpackage procède à quatre vérifications au cours de cette phase :
Vérification des dépendances non résolues.
Pour chaque groupe de fichiers et dans chaque produit sélectionné, swpackage vérifie si un requis du groupe de fichiers n'est pas également sélectionné ou n'est pas déjà présent dans le dépôt cible. Les dépendances non résolues dans un produit génèrent des erreurs. Les dépendances non résolues pour des produits génèrent des notes.
Vérification des droits à intégration (ou modification) des produits.
Pour tout nouveau produit (un produit qui n'existe pas dans le dépôt cible), la commande swpackage vérifie au niveau du dépôt cible si vous disposez des droits de création d'un nouveau produit (autorisation « insert »). Si tel n'est pas le cas, le produit n'est pas sélectionné.
Pour tout produit existant (par exemple, un produit à modifier), la commande swpackage vérifie si vous disposez des droits de modification (autorisation « write »). Si tel n'est pas le cas, le produit est désélectionné.
Si les produits ne sont pas sélectionnés suite à un refus d'autorisation, la session s'achève avec une erreur.
Si le dépôt est nouveau ou que l'intégration est faite sur bande, cette vérification des droits n'est pas effectuée. Les droits de création d'un nouveau dépôt impliquent l'autorisation d'y créer des produits. Dans la mesure où une session sur bande écrit d'abord dans un dépôt temporaire, puis copie les données sur bande, si vous disposez des droits de créer un nouveau dépôt (temporaire), vous pouvez intégrer le logiciel sur bande.
Vérification du logiciel à réintégrer.
Pour tous les produits sélectionnés, swpackage vérifie l'existence du produit dans le dépôt cible.
S'il n'existe pas, swpackage vérifie les groupes de fichiers ajoutés (nouveaux groupes) ou modifiés.
S'il existe et que tous les groupes de fichiers sont sélectionnés, swpackage vérifie si les groupes de fichiers existants sont dépassés par rapport au nouveau produit.
Mise en œuvre de l'analyse de l'espace disque (DSA)
swpackage vérifie si l'espace disque disponible dans le dépôt cible est suffisant pour intégrer les produits sélectionnés.
Si l'espace disque disponible pour permettre une opération d'intégration est suffisant, swpackage écrit une note dans le fichier de consignation pour signaler les conséquences en termes d'espace disque.
Une erreur se produit si le logiciel intégré empiète sur l’espace minfree du disque.
Une erreur se produit si la phase d'intégration nécessite plus d'espace disque qu'il n'y en a de disponible.
Si vous établissez l'option de commande enforce_dsa à la valeur « false », swpackage transforme les erreurs d'espace disque en avertissements et poursuit son traitement. Cette flexibilité vous permet de franchir les limites de l'espace minimal disponible pour mener à bien une intégration.
Phase III : Construction
Lors de l'intégration d'un produit, si le dépôt cible n'existe pas, swpackage le crée. S'il existe, swpackage fusionne le(s) nouveau(x) produit(s) avec ceux qui existent. Un répertoire est créé pour chaque version du produit, en utilisant l'attribut d'étiquette de produit et un numéro d'instance unique (ID_instance) pour toutes les versions de produit dotées de la même étiquette.
Avant de créer un nouveau répertoire de stockage, swpackage vérifie si cette version de produit est dotée des mêmes attributs d'identification qu'une version de produit existante.
Si tous les attributs d'identification correspondent, vous êtes en train d'intégrer de nouveau (modifier) une version existante. Dans le cas contraire, swpackage crée une nouvelle version sur la distribution cible.
Le processus d'intégration est effectué dans un certain ordre pour éviter la détérioration de la distribution cible dans le cas où surviendrait une erreur fatale. Un produit est intégré dans sa totalité et lorsque l’intégration de tous les produits spécifiés a été menée à son terme, le fichier global d’INDEX de la distribution est construit ou reconstruit. Le processus d'élaboration d'un produit suit les étapes suivantes :
Vérifier si le produit est nouveau ou s'il existe déjà. S’il est nouveau, créer le répertoire de stockage du produit.
Pour chaque groupe de fichiers du produit, copier les fichiers du groupe à leurs emplacements de stockage (dans le répertoire de stockage du produit) et créer les fichiers de catalogue du groupe de fichiers (informations de base de données).
Après les groupes de fichiers proprement dits, créer les fichiers d’information de produit (métafichiers).
Un dépôt cible n'est que la première étape de création d'un CD-ROM. Pour appliquer le format normalisé ISO 9660, vous devez faire appel à un utilitaire de conversion, cette dernière n'étant pas effectuée par swpackage.
Les bandes de distribution sont créées au format tar (bien que les commandes SD-UX puissent également lire les dépôts depuis des bandes au format cpio). Pour créer la bande, swpackage commence par placer le produit dans un dépôt de distribution temporaire. (Le dépôt est supprimé lorsque la commande swpackage s'achève.) Pour économiser de l'espace, les fichiers sont traités comme des références aux fichiers sources réel. Après construction du dépôt de distribution, swpackage les archive, en même temps que les fichiers réels, sur la bande.
Si vous archivez un produit comportant des groupes de fichiers noyau sur bande, swpackage commencera par les placer dans les archives pour permettre à swinstall d'y accéder facilement. swpackage ordonne également ces groupes en fonction de relations de dépendance correspondant à des prérequis.
Phase IV : Création de bande
Cette phase optionnelle n'a lieu que si vous créez une distribution sur bande.
Durant cette phase, swpackage copie les fichiers sources et un catalogue de dépôt temporaire sur la bande.
swpackage réalise un calcul d'espace sur bande pour s'assurer que la bande peut recevoir le logiciel intégré. Si une seule bande ne suffit pas, swpackage répartit le logiciel sur plusieurs bandes.
swpackage ne peut pas compresser des fichiers lors d'une écriture sur bande.
Utilisation de swpackage |
 |
Syntaxe swpackage
swpackage [-p] [-v] [-V] [-C fichier_session]
[-d répertoire|unité] [-f fichier_logiciel]
[-s fichier_spécification_produit|répertoire]
[-S fichier_session] [-x option=valeur] [-X fichier_options]
[sélections_logiciels] [@ sélections_cible] |
Options et opérandes
-
-p
Donne un aperçu de la session d'intégration spécifiée sans réellement créer ou modifier le dépôt de distribution (bande).
-
-v
Active la sortie prolixe vers stdout et produit des messages pour chacun des produits, sous-produits et groupes de fichiers à intégrer. (Le fichier de consignation swpackage
/var/adm/sw/swpackage.log n'est pas affecté par cette option.)
-
-V
Établit la liste des révisions de modèle de données SDU lisibles avec swpackage. La commande swpackage utilise toujours la révision de modèle de données SDU la plus récente.
-
-C
fichier_session
Exécute la commande et sauvegarde les valeurs courantes de l'option et de l'opérande dans le fichier_session. Voir « Fichiers session ».
- -d
répertoire|unité
Si vous créez un répertoire de distribution, cette option définit le chemin d'accès du répertoire.
Si vous créez une bande de distribution, cette option définit le fichier de l'unité sur laquelle la distribution sera écrite. L'unité de bande doit exister et l'option target_type=tape doit être spécifiée.
-
-f
fichier_logiciel
Lit une liste de sélections de logiciels dans le fichier désigné en ignorant ou en complétant les indications de la ligne de commande. Voir « Fichiers de logiciels ».
-
-s
fichier_spécification_produit
|
répertoire
Définissez le fichier PSF à utiliser ou le répertoire existant à utiliser comme source pour la session de conditionnement.
-
-S
fichier_session
Exécute la commande avec les valeurs sauvegardées lors d'une session d'installation précédente et définies dans fichier_session. Voir « Fichiers session ».
-
-x
option=valeur
Initialise une option de commande à valeur. Cette valeur remplace la valeur par défaut ou celle sauvegardée dans le fichier options. Voir « Modification des options de commande ».
-
-X fichier_options
Lit les options de session et les comportements dans fichier_options. Voir « Modification des options de commande ».
-
sélections_logiciels
Les objets logiciels à installer. Voir « Sélection de logiciels ».
Si vous n'utilisez pas cette spécification, la commande swpackage intègre tous les produits indiqués dans le fichier PSF.
-
@
sélections_cibles
La cible de la commande. Voir « Sélections de cible ».
Si vous créez un dépôt de distribution (répertoire), cet opérande définit l'emplacement du répertoire. En l'absence d'opérande, /var/spool/sw sert de répertoire de dépôt par défaut.
Si vous créez une bande de distribution, cet opérande attribue un nom au fichier de l'unité dans laquelle sera écrit le fichier archives tar. swpackage doit être capable de déterminer si le support est une bande DDS ou un fichier disque. En l'absence d'opérande, swpackage utilise le fichier spécial /dev/swtape.
Modification des options de commande
Vous pouvez modifier le comportement de cette commande en définissant des options de ligne de commande supplémentaires lors de l'appel (en utilisant l'option -x) ou en lisant des valeurs prédéfinies dans un fichier. Le tableau suivant montre les valeurs par défaut et les options applicables à swpackage.
Tableau 10-5 Options et valeurs par défaut de la commande swpackage
admin_directory=/var/spool/sw allow_large_serial_depot=false allow_partial_bundles=true compress_command=/usr/contrib/bin/gzip distribution_source_directory=/var/spool/sw distribution_target_directory= /var/spool/sw distribution_target_serial=/dev/rmt/0m include_file_revisions=false logfile=/var/adm/sw/swpackage.log
| reinstall_files_use_cksum=true remove_obsolete_filesets=false
|
Informations connexes
Reportez-vous à l'Annexe A pour obtenir la liste complète et la description de ces valeurs par défaut.
Messages du fichier de consignation
Le fichier de consignation /var/adm/sw/swpackage.log enregistre les messages émis durant les sessions swpackage.
La consignation des messages par défaut adresse des messages prolixes à stdout.
(La définition de l'option prolixe à 0 réduit la quantité d'informations adressée à stdout.)
Le processus de consignation adresse également les messages d'erreur et les avertissements à stderr.
Aucun message de fichier de consignation n'est émis en mode aperçu (-p).
Le fichier de consignation est égal à stdout plus stderr.
Voici un exemple de consignation :
======= 01/27/01 18:58:45 MST BEGIN swpackage SESSION
* Session started for user "root@sdtest.myco.com".
* Source: vewd:test.psf
* Target: vewd:/var/spool/sw
* Software selections:
*
* Options:
preview true
verbose 1
loglevel 1
logfile /var/adm/sw/swpackage.log
source_type file
target_type directory
package_in_place false
follow_symlinks false
include_file_revisions false
enforce_dsa true
reinstall_files true
reinstall_files_use_cksum false
write_remote_files false
create_target_acls true
* Beginning Selection Phase.
* Reading the Product Specification File (PSF) "test.psf".
* Reading the product "SD" at line 1.
* Reading the fileset "commands" at line 4.
======= 01/27/01 18:58:45 MST END swpackage SESSION |