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

Ajout de fonctions au fichier prototype

Outre la définition de chaque objet de package dans le fichier prototype, vous pouvez également effectuer les opérations suivantes :

Reportez-vous aux sections suivantes pour plus d'informations sur ces modifications.

Définition d'objets supplémentaires à créer lors de la phase d'installation

Vous pouvez utiliser le fichier prototype pour définir des objets qui ne sont pas fournis sur le support d'installation. Au cours de l'installation, la commande pkgadd permet de créer ces objets avec les types de fichier appropriés s'ils n'existent pas déjà au moment de l'installation.

Pour spécifier la création d'un objet sur le système cible, ajoutez l'entrée correspondante dans le fichier prototype pour indiquer le type de fichier approprié.

Pour par exemple créer un répertoire sur le système cible sans le fournir sur le support d'installation, ajoutez l'entrée suivante pour ce répertoire dans le fichier prototype :


d none /directory 0644 root other

Si vous souhaitez créer un fichier vide sur le système cible, l'entrée correspondant à ce fichier dans le fichier prototype doit être comme suit :


f none filename=/dev/null 0644 bin bin

Les seuls objets qui doivent être fournis sur le support d'installation sont les fichiers standard et les scripts de modification (types de fichier e, v, f) et les répertoires requis pour les stocker. Tout autre objet est créé sans référence aux objets, répertoires, tubes nommés, périphériques, liens physiques ni aux liens symboliques fournis.

Création de lien lors de la phase d'installation

Pour créer des liens lors de la phase d'installation, indiquez les informations suivantes dans l'entrée de l'objet lié figurant dans le fichier prototype :

Les liens relatifs sont spécifiés de cette manière que le package soit installé comme étant absolu ou réadressable.

Distribution de packages sur divers volumes

Lorsque vous créez votre package à l'aide de la commande pkgmk, celle-ci effectue les calculs et opérations nécessaires pour organiser le package en plusieurs volumes. Un package à plusieurs volumes est appelé un package segmenté.

Vous pouvez toutefois utiliser le champ facultatif part du fichier prototype pour définir la section dans laquelle l'objet doit être placé. Tout chiffre entré dans ce champ ignore la commande pkgmk et oblige l'élément à être placé dans la section donnée dans le champ. Notez qu'il existe une correspondance exacte entre les sections et volumes des supports amovibles formatés en tant que systèmes de fichiers. Si les volumes sont préattribués par le développeur, la commande pkgmk renvoie une erreur lorsque l'espace est insuffisant sur un des volumes.

Imbrication de fichiers prototype

Vous pouvez créer plusieurs fichiers prototype et les insérer dans le fichier prototype à l'aide de la commande !include. L'imbrication des fichiers facilite leur maintenance.

L'exemple suivant contient trois fichiers prototype. Le fichier principal (prototype) est en cours de modification. Les deux autres fichiers (proto2 et proto3) y sont insérés.


!include /source-dir/proto2
!include /source-dir/proto3

Définition de valeurs par défaut pour les champs mode, owner et group

Pour définir des valeurs par défaut pour les champs mode, owner et group d'objets de package spécifiques, vous pouvez insérer la commande !default dans le fichier prototype. Exemple :


!default 0644 root other

Remarque –

La plage d'application de la commande !default débute à son point d'insertion et s'étend jusqu'à la fin du fichier. La plage d'application de la commande ne s'étend pas aux fichiers imbriqués.


Toutefois, pour les répertoires (type de fichier d) et les fichiers modifiables (type de fichier e) que vous êtes sûr de trouver sur les systèmes cibles (tels que /usr ou /etc/vfstab), vérifiez que les champs mode, owner et group du fichier prototype sont définis sur la valeur point d'interrogation (?). De cette manière, vous n'écrasez aucun paramètre existant susceptible d'avoir été modifié par l'administrateur du site.

Offre d'un chemin de recherche pour la commande pkgmk.

Si l'emplacement source des objets de package diffère de leur emplacement de destination et que vous ne souhaitez pas vous servir du format chemin1=chemin2 comme décrit à la rubrique Remarques sur les emplacements source et de destination des objets, vous pouvez utiliser la commande !search dans le fichier prototype.

Si vous avez par exemple créé un répertoire pkgfiles dans votre répertoire personnel dans lequel vous avez stocké tous vos fichiers d'information et scripts d'installation, vous pouvez spécifier que la recherche s'effectue dans ce répertoire lorsque le package est créé à l'aide de la commande pkgmk.

La commande dans le fichier prototype ressemble à la suivante :


!search /home-dir/pkgfiles

Remarque –

Les demandes de recherche ne s'étendent pas aux fichiers imbriqués. D'autre part, une recherche se limite aux répertoires répertoriés et ne s'effectue pas de manière récurrente.


Définition de variables d'environnement

Vous pouvez également ajouter des commandes au fichier prototype du type !PARAM=valeur. Les commandes de ce type définissent des variables dans l'environnement actuel. Si vous avez créé plusieurs fichiers prototype, notez que cette commande ne s'applique qu'au fichier prototype dans lequel elle est définie.

La variable PARAM peut commencer par une minuscule ou une majuscule. Si la valeur de la variable PARAM est inconnue lors de la phase de création, l'exécution de la commande pkgmk est suspendue et une erreur est renvoyée. Pour plus d'informations sur les différences entre les variables d'installation et les variables de création, reportez-vous à Variables d'environnement d'un package.