Ignorer les liens de navigation | |
Quitter l'aperu | |
![]() |
Guide du développeur de l'empaquetage d'applications Oracle Solaris 10 1/13 Information Library (Français) |
Création d'un package (liste de tâches)
Variables d'environnement d'un package
Règles globales d'utilisation des variables d'environnement
Récapitulatif des variables d'environnement d'un package
Définition d'une instance de package
Définition de l'abréviation d'un package (PKG)
Spécification d'une architecture de package (ARCH)
Spécification de l'architecture du jeu d'instructions d'un package (SUNW_ISA)
Spécification de la version d'un package (VERSION)
Définition du nom d'un package (NAME)
Définition d'une catégorie de package (CATEGORY)
Organisation du contenu d'un package
Organisation du contenu d'un package
Création d'un fichier prototype
Objets réadressables collectivement
Objets réadressables individuellement
Remarques sur les emplacements source et de destination des objets
Création d'un fichier prototype de zéro
Exemple : Création d'un fichier prototype à l'aide de la commande pkgproto
Derniers ajustements à apporter à un fichier prototype créé à l'aide de la commande pkgproto
Création d'entrées d'objet dont le type de fichier est v, e, x et i
Utilisation de plusieurs définitions de classe
Ajout de fonctions au fichier prototype
Définition d'objets supplémentaires à créer lors de la phase d'installation
Création de lien lors de la phase d'installation
Distribution de packages sur divers volumes
Imbrication de fichiers prototype
Définition de valeurs par défaut pour les champs mode, owner et group
Offre d'un chemin de recherche pour la commande pkgmk.
Définition des variables d'environnement
Création d'un fichier prototype à l'aide de la commande pkgproto
3. Amélioration de la fonctionnalité d'un package (opérations)
4. Vérification et transfert d'un package
5. Création d'un package : Etudes de cas
Exécutez la commande pkgmk pour créer votre package. La commande pkgmk effectue les opérations suivantes :
Enregistrement de tous les objets définis dans le fichier prototype au format répertoire.
Création du fichier pkgmap pour remplacer le fichier prototype.
Création d'un package pouvant être installé, utilisé comme entrée de la commande pkgadd.
La forme la plus simple de cette commande est la commande pkgmk sans aucune option. Avant d'exécuter la commande pkgmk sans aucune option, vérifiez que votre répertoire de travail actuel contient le fichier prototype du package. Les résultats de la commande, des fichiers et des répertoires sont consignés dans le répertoire /var/spool/pkg.
Lorsque vous créez un package à l'aide de la commande pkgmk, un fichier pkgmap est créé en remplacement du fichier prototype. Le fichier pkgmap de l'exemple précédent contient les données suivantes :
$ more pkgmap : 1 3170 1 d none SUNWcadap 0755 root sys 1 d none SUNWcadap/demo 0755 root bin 1 f none SUNWcadap/demo/file1 0555 root bin 14868 45617 837527496 1 d none SUNWcadap/lib 0755 root bin 1 f none SUNWcadap/lib/file2 0644 root bin 1551792 62372 837527499 1 d none SUNWcadap/man 0755 bin bin 1 d none SUNWcadap/man/man1 0755 bin bin 1 f none SUNWcadap/man/man1/file3.1 0444 bin bin 3700 42989 837527500 1 f none SUNWcadap/man/man1/file4.1 0444 bin bin 1338 44010 837527499 1 f none SUNWcadap/man/windex 0644 root other 157 13275 837527499 1 d none SUNWcadap/srcfiles 0755 root bin 1 f none SUNWcadap/srcfiles/file5 0555 root bin 12208 20280 837527497 1 f none SUNWcadap/srcfiles/file6 0555 root bin 12256 63236 837527497 1 i pkginfo 140 10941 837531104 $
Le format de ce fichier est très similaire au format du fichier prototype. Toutefois, le fichier pkgmap inclut les informations suivantes :
La première ligne indique le nombre de volumes balayés par le package et la taille approximative du package une fois installé.
Par exemple, : 1 3170 indique que le package balaye un seul volume et qu'il utilise environ 3170 blocs de 512 octets une fois installé.
Trois autres champs définissent la taille, la somme de contrôle et le temps de modification de chaque objet de package.
Les objets de package sont répertoriés par ordre alphabétique (par classe puis par nom de chemin) pour réduire le temps d'installation du package.
Pour une procédure détaillée, reportez-vous à Création d'un fichier pkginfo.
Pour une procédure détaillée, reportez-vous à Création d'un fichier prototype à l'aide de la commande pkgproto.
$ pkgmk [-o] [-a arch] [-b base-src-dir] [-d device] [-f filename] [-l limit] [-p pstamp] [-r rootpath] [-v version] [PARAM=value] [pkginst]
Remplace la version existante du package.
Remplace les informations sur l'architecture du fichier pkginfo.
Demande que le répertoire source de base base-src-dir soit ajouté au début des noms de chemin réadressables lorsque la commande pkgmk recherche des objets sur le système de création.
Indique que le package doit être copié sur le périphérique device qui peut être un nom de chemin de répertoire absolu, une disquette ou un disque amovible.
Nomme le fichier filename utilisé comme fichier prototype. Les noms par défaut sont prototype ou Prototype.
Spécifie la taille maximale, en blocs de 512 octets, du périphérique de sortie.
Remplace la définition de l'horodatage de production figurant dans le fichier pkginfo.
Demande que le répertoire root rootpath soit utilisé pour localiser les objets sur le système de développement.
Remplace les informations de version figurant dans le fichier pkginfo.
Définit des variables d'environnement globales. Les variables commençant par une minuscule sont résolues lors de la phase de création. Celles qui commencent par une majuscule sont placées dans le fichier pkginfo afin d'être utilisée lors de la phase d'installation.
Indique un package par son abréviation ou une instance spécifique (par exemple, SUNWcadap.4).
Pour plus d'informations, reportez-vous à la page de manuel pkgmk(1).
$ pkgchk -d device-name pkg-abbrev Checking uninstalled directory format package pkg-abbrev from device-name ## Checking control scripts. ## Checking package objects. ## Checking is complete. $
Indique l'emplacement du package. Notez que device-name peut être un nom de chemin d'accès à un répertoire complet ou être les identificateurs d'une bande ou d'un disque amovible.
Correspond au nom d'un ou plusieurs packages à vérifier (séparés par des espaces). En cas d'omission, la commande pkgchk vérifie tous les packages disponibles.
La commande pkgchk indique quels aspects du package sont vérifiés et, le cas échéant, affiche des avertissements ou des messages d'erreur. Pour plus d'informations sur la commande pkgchk, reportez-vous à Vérification de l'intégrité d'un package.
![]() | Attention - Les erreurs doivent être prises très au sérieux. Une erreur peut indiquer la nécessité de corriger un script. Consultez toutes les erreurs et ignorez-les si vous êtes en désaccord avec le résultat de la commande pkgchk. |
Exemple 2-2 Création d'un package
L'exemple suivant utilise le fichier prototype créé à la rubrique Derniers ajustements à apporter à un fichier prototype créé à l'aide de la commande pkgproto.
$ cd /home/jane/InfoFiles $ pkgmk ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system990708093144" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete. $
Exemple 2-3 Spécification d'un répertoire source pour les fichiers réadressables
Si votre package contient des fichiers réadressables, vous pouvez utiliser l'option -b base-src-dir de la commande pkgmk pour spécifier un nom de chemin à ajouter au début des noms de chemin réadressables lors de la création du package. Cette option est utile lorsque vous n'avez pas utilisé le format path1=path2 pour les fichiers réadressables, ni spécifié de chemin de recherche à l'aide de la commande !search dans le fichier prototype.
La commande suivante crée un package doté des caractéristiques suivantes :
Le package est créé à partir de l'exemple de fichier prototype créé par la commande pkgproto. Reportez-vous à Exemple : Création d'un fichier prototype à l'aide de la commande pkgproto pour plus d'informations.
Le package est créé sans modifier les champs path.
Le package ajoute une entrée pour le fichier pkginfo.
$ cd /home/jane/InfoFiles $ pkgmk -o -b /home/jane ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system960716102636" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete.
Dans cet exemple, le package est créé dans le répertoire par défaut, /var/spool/pkg, en spécifiant l'option -o. Cette option remplace le package créé à l'Exemple 2-2.
Exemple 2-4 Spécification de répertoires source distincts pour les fichiers d'information et les objets de package
Si vous placez les fichiers d'information de package (notamment pkginfo et prototype) et les objets de package dans deux répertoires distincts, vous pouvez créer votre package à l'aide des options -b base-src-dir et -r rootpath dans la commande pkgmk. Si vous placez les objets de package dans un répertoire appelé /product/pkgbin et les autres fichiers d'information de package dans un répertoire appelé /product/pkgsrc, vous pouvez exécuter la commande suivante pour placer le package dans le répertoire /var/spool/pkg :
$ pkgmk -b /product/pkgbin -r /product/pkgsrc -f /product/pkgsrc/prototype
(Facultatif) Vous pouvez utiliser les commandes suivantes pour obtenir le même résultat :
$ cd /product/pkgsrc $ pkgmk -o -b /product/pkgbin
Dans cet exemple, la commande pkgmk utilise le répertoire de travail actuel pour localiser les autres éléments du package (notamment les fichiers d'information prototype et pkginfo).
Voir aussi
Pour ajouter tout fichier d'information ou script d'installation facultatif à votre package, reportez-vous au Chapitre 3, Amélioration de la fonctionnalité d'un package (opérations). Sinon, une fois le package créé, vous devez vérifier son intégrité. Le Chapitre 4, Vérification et transfert d'un package vous explique comment vérifier l'intégrité du package et décrit sa procédure de transfert sur un support de distribution.