JavaScript is required to for searching.
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)
search filter icon
search icon

Informations document

Préface

1.  Conception d'un package

2.  Création d'un package

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

Création d'un fichier pkginfo

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)

Création d'un fichier pkginfo

Organisation du contenu d'un package

Organisation du contenu d'un package

Création d'un fichier prototype

Format du fichier prototype

Champ ftype

Champ class

Champ path

Objets réadressables collectivement

Objets réadressables individuellement

Noms de chemin paramétriques

Remarques sur les emplacements source et de destination des objets

Champ mode

Champ owner

Champ group

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

Exemple : Derniers ajustements à apporter à un fichier prototype créé à l'aide de la commande pkgproto

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

Création d'un package

Utilisation de la commande pkgmk la plus simple

Fichier pkgmap

Création d'un package

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

6.  Techniques avancées de création de packages

Glossaire

Index

Création d'un package

Exécutez la commande pkgmk pour créer votre package. La commande pkgmk effectue les opérations suivantes :

Utilisation de la commande pkgmk la plus simple

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.

Fichier pkgmap

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 :

Création d'un package

  1. Si nécessaire, créez un fichier pkginfo.

    Pour une procédure détaillée, reportez-vous à Création d'un fichier pkginfo.

  2. Si nécessaire, créez un fichier prototype.

    Pour une procédure détaillée, reportez-vous à Création d'un fichier prototype à l'aide de la commande pkgproto.

  3. Faites du répertoire contenant le fichier prototype du package votre répertoire de travail.
  4. Créez le package.
    $ pkgmk [-o] [-a arch] [-b base-src-dir] [-d device]
       [-f filename] [-l limit] [-p pstamp] [-r rootpath]
       [-v version] [PARAM=value] [pkginst]
    -o

    Remplace la version existante du package.

    -a arch

    Remplace les informations sur l'architecture du fichier pkginfo.

    -b base-src-dir

    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.

    -d device

    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.

    -f filename

    Nomme le fichier filename utilisé comme fichier prototype. Les noms par défaut sont prototype ou Prototype.

    -l limit

    Spécifie la taille maximale, en blocs de 512 octets, du périphérique de sortie.

    -p pstamp

    Remplace la définition de l'horodatage de production figurant dans le fichier pkginfo.

    -r rootpath

    Demande que le répertoire root rootpath soit utilisé pour localiser les objets sur le système de développement.

    -v version

    Remplace les informations de version figurant dans le fichier pkginfo.

    PARAM=value

    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.

    pkginst

    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).

  5. Vérifiez le contenu du package.
    $ 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.
    $
    -d device-name

    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.

    pkg-abbrev

    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

    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 :

$ 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.