Créer un package Solaris
Contents
1 Introduction
Il peut être très pratique de créer son propre package Solaris. Pourquoi ? Un gain de temps et c'est propre :-)
Nous allons avoir besoin de plusieurs fichiers, mais tous ne sont pas obligatoire. Je vais essayer de détailler au maximum pour que ce soit bien clair.
Il est aussi possible pour sécuriser son package de le certifier via SSL, GPG...
2 Création de fichiers nécessaires
Nous allons créer un dossier package et allons travailler dedans. Voici la composition d'un package :
package |-- NOMdupackage | |-- etc | | `-- deimos | `-- usr | |-- bin | | `-- deimos_cluster | `-- perl5 | |-- 5.8.4 | | |-- lib | | | `-- i86pc-solaris-64int | | | `-- perllocal.pod | | `-- man | | `-- man3 | | `-- Unix::Syslog.3 | `-- site_perl | `-- 5.8.4 | `-- i86pc-solaris-64int | |-- Unix | | `-- Syslog.pm | `-- auto | `-- Unix | `-- Syslog | |-- Syslog.bs | `-- Syslog.so |-- copyright |-- depend |-- pkginfo `-- prototype
Il y a donc :
- NOMdupackage : un nom de package avec 3 à 4 lettres en majuscules uniques, qui va contenir tous les fichiers nécessaires à l'installation
- copyright et autres fichiers : fichiers qui vont servir à intéréagir pendant la phase d'utilisation du package ou tout simplement qui va contenir des informations
Je vais détailler un peu le dernier point. Voici les fichiers dont vous pouvez vous servir :
- pkginfo : contient des infos sur le package (obligatoire)
- prototype : contient la liste des fichiers et répertoire à copier. Contient également les fichiers de conf du package (obligatoire)
- compver : définit les anciennes versions de package compatible avec celui ci
- depend : définit les autres packets dépendant pour installer ce packet
- space : définit l'espace disque requis pour ce paquage
- copyright : le copyright
- request : les prérequis pour l'installation
- checkinstall : script effectuant des tests pour vérifier que tout va bien avant d'effectuer l'installation
- preinstall : script pour préparer l'installation
- postinstall : script pour finir l'installation
- preremove : script pour préparer la suppression du package
- postinstall : script pour finir l'installation
Créez donc un dossier contenant le nom de souhaité de votre package ainsi que l'arborescence souhaitée montré comme plus haut dans l'exemple.
2.1 copyright
Pour le copyright, mettez le votre. Un truc bateau :
copyright |
Copyright (c) 2009 Deimos All Rights Reserved This product is protected by copyright and distributed under licenses restricting copying, distribution, and decompilation. |
2.2 depend
Si vous avez des dépendances pour votre package, vous devez les inscrire ici. Par exemple, pour cet exemple, j'ai besoin d'avoir Perl et des librairies associées. Je vais donc récupérer la liste des noms de packets dont j'ai besoin et les mettre dans mon fichier depend :
pkginfo |
$ pkginfo | grep perl584 | grep -v man > depend system SUNWperl584core Perl 5.8.4 (core) system SUNWperl584usr Perl 5.8.4 (non-core) |
Ensuite, nous allons devoir remplacer ici 'system' par 'P' pour que ça donne ceci dans notre fichier :
depend |
P SUNWperl584core Perl 5.8.4 (core) P SUNWperl584usr Perl 5.8.4 (non-core) |
2.3 pkginfo
Maintenant, le fameux fichier contenant la description du package :
2.4 prototype
Finissons par ce fichier qui est le plus complexe. Il doit contenir tous les noms de fichiers (f), dossiers (d) existant. Il comprend également des informations (i).
Utilisez seulement ce dont vous avez besoin (pkginfo est obligatoire) :
echo "i pkginfo=~/package/pkginfo" > prototype echo "i copyright=~/package/copyright" >> prototype echo "i depend=~/package/depend" >> prototype |
Ensuite je vais me mettre dans mon dossier NOMdupackage et ajouter ce qu'il me reste :
pkgproto |
cd NOMdupackage pkgproto . >> ../prototype |
Le contenu de mon fichier doit au final ressemble à quelquechose comme cela :
3 Création du package
Maintenant nous allons créer le package. Nous faisons un dossier package_done pour créer le package dedans :
pkgmk |
cd ~/package mkdir package_done pkgmk -o -b . -d package_done -f prototype |
Là nous obtenons notre package Solaris sous forme de dossier et non avec une extension pkg (qui est plus class, plus beau et brille dans le noir). C'est pourquoi voici le bouquet final :
pkgtrans |
cd package_done pkgtrans -s . NOMdupackage.pkg NOMdupackage |
Et là ça y est j'ai mon beau package en .pkg :-)
4 Ressources
http://docs.sun.com/app/docs/doc/817-0406/ch1designpkg-51728?a=view