Bien que la commande pkgproto soit utile pour créer un fichier prototype initial, elle ne crée pas d'entrées pour tous les objets de package qui doivent être définis. Cette commande ne crée pas des entrées complètes. La commande pkgproto n'effectue pas les opérations suivantes :
Création d'entrées complètes pour les objets dont le type de fichier est v (fichiers volatiles), e (fichiers modifiables), x (répertoires exclusifs) ou i (fichiers d'information ou scripts d'installation) ;
Prise en charge de plusieurs classes à l'aide d'un seul appel.
Vous devez systématiquement modifier le fichier prototype pour ajouter des objets dont le type de fichier est i. Si vous avez stocké vos fichiers d'information et vos scripts d'installation au premier niveau du répertoire de votre package (par exemple, /home/jane/SUNWcadap/pkginfo), une entrée du fichier prototype est comme suit :
i pkginfo |
Si vous n'avez pas stocké vos fichiers d'information ni vos scripts d'installation au premier niveau du répertoire de votre package, vous devez spécifier leur emplacement source. Exemple :
i pkginfo=/home/jane/InfoFiles/pkginfo |
Vous pouvez également utiliser la commande !search pour spécifier l'emplacement de la commande pkgmk afin de déterminer à quel moment créer le package. Pour plus d'informations, reportez-vous à Offre d'un chemin de recherche pour la commande pkgmk..
Pour ajouter des entrées d'objets dont le type de fichier est v, e et x, respectez le format décrit à la rubrique Format du fichier prototype ou reportez-vous à la page de manuel prototype(4).
N'oubliez pas d'attribuer une classe aux fichiers dont le type est e (modifiable) et d'associer un script d'action de classe à celle-ci. Sans cette classe, les fichiers sont supprimés lors de la désinstallation du package même si le nom de chemin est partagé avec d'autres packages.
Si vous utilisez la commande pkgproto pour créer votre fichier prototype de base, vous pouvez attribuer tous les objets de package à la classe none ou à une classe spécifique. Comme illustré dans l'Exemple : Création d'un fichier prototype à l'aide de la commande pkgproto, la commande pkgproto de base attribue tous les objets à la classe none. Pour attribuer tous les objets à une classe spécifique, vous pouvez utiliser l'option -c. Exemple :
$ pkgproto -c classname /home/jane/SUNWcadap > /home/jane/InfoFiles/prototype |
Si vous utilisez plusieurs classes, il peut s'avérer nécessaire de modifier manuellement le fichier prototype pour modifier le champ class de chaque objet. S vous utilisez des classes, vous devez également définir le paramètre CLASSES du fichier pkginfo et rédiger des scripts d'action de classe. L'utilisation de classes est facultative. Cette fonction est traitée en détail à la la rubrique Rédaction de scripts d'action de classe.
Le fichier prototype créé par la commande pkgproto dans l'Exemple : Création d'un fichier prototype à l'aide de la commande pkgproto, requiert plusieurs modifications.
Le fichier pkginfo doit avoir une entrée.
Les champs path doivent être remplacés par le format chemin1=chemin2 car la source du package se trouve dans /home/jane . Puisque la source du package est un répertoire hiérarchique et que la commande !search n'effectue pas de recherches de manière récurrente, l'utilisation du format chemin1=chemin2 peut s'avérer plus simple.
Les champs owner et group doivent contenir le nom des utilisateurs et des groupes existant sur le système cible. Autrement dit, le propriétaire jane génère une erreur car ce propriétaire n'est pas présent sur le système d'exploitation SunOSTM.
Le fichier prototype une fois modifié est comme suit :
i pkginfo=/home/jane/InfoFiles/pkginfo d none SUNWcadap=/home/jane/SUNWcadap 0755 root sys d none SUNWcadap/demo=/home/jane/SUNWcadap/demo 0755 root bin f none SUNWcadap/demo/file1=/home/jane/SUNWcadap/demo/file1 0555 root bin d none SUNWcadap/srcfiles=/home/jane/SUNWcadap/srcfiles 0755 root bin f none SUNWcadap/srcfiles/file5=/home/jane/SUNWcadap/srcfiles/file5 0555 root bin f none SUNWcadap/srcfiles/file6=/home/jane/SUNWcadap/srcfiles/file6 0555 root bin d none SUNWcadap/lib=/home/jane/SUNWcadap/lib 0755 root bin f none SUNWcadap/lib/file2=/home/jane/SUNWcadap/lib/file2 0644 root bin d none SUNWcadap/man=/home/jane/SUNWcadap/man 0755 bin bin f none SUNWcadap/man/windex=/home/jane/SUNWcadap/man/windex 0644 root other d none SUNWcadap/man/man1=/home/jane/SUNWcadap/man/man1 0755 bin bin f none SUNWcadap/man/man1/file4.1=/home/jane/SUNWcadap/man/man1/file4.1 0444 bin bin f none SUNWcadap/man/man1/file3.1=/home/jane/SUNWcadap/man/man1/file3.1 0444 bin bin |