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

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

Spécification du répertoire de base

Fichier de valeurs d'administration par défaut

S'habituer à l'incertitude

Utilisation du paramètre BASEDIR

Utilisation des répertoires de base paramétriques

Exemples : Utilisation des répertoires de base paramétriques

Fichier pkginfo

Fichier pkgmap

Gestion du répertoire de base

Prise en compte du réadressage

Parcours des répertoires de base

Utilisation du paramètre BASEDIR

Fichier pkginfo

Fichier pkgmap

Exemple : Analyse de scripts parcourant un BASEDIR

Script request

Script checkinstall

Utilisation de chemins paramétriques relatifs

Fichier pkginfo

Fichier pkgmap

Exemple : Script request parcourant un chemin paramétrique relatif

Prise en charge du réadressage dans un environnement hétérogène

Approche traditionnelle

Packages réadressables

Exemple : Package réadressable traditionnel

Fichier pkginfo

Fichier pkgmap

Packages absolus

Exemple : Package absolu traditionnel

Fichier pkgmap

Packages composites

Exemple : Solution traditionnelle

Fichier pkginfo

Fichier pkgmap

Au-delà de la tradition

Informations supplémentaires sur les packages composites

Noms de chemins absolus à l'apparence réadressable

Exemple : Modification d'un fichier

Description

Implémentation

Exemple

Exemple : Création d'un fichier

Description

Implémentation

Exemple

Exemple : Package composite

Fichier pkginfo

Fichier pkgmap

Création de packages pouvant être installés à distance

Exemple : Installation sur un système client

Exemple : Installation sur un serveur ou un système autonome

Exemple : Montage de systèmes de fichiers partagés

Application de patchs à des packages

Script checkinstall

Script preinstall

Script d'action de classe

Script postinstall

Script patch_checkinstall

Script patch_postinstall

Mise à niveau des packages

Script request

Script postinstall

Création de packages d'archives de classe

Structure du répertoire d'un package d'archive

Mots clés de prise en charge des packages d'archive de classe

Utilitaire faspac

Glossaire

Index

Création de packages d'archives de classe

Un package d'archive de classe, qui est une amélioration par rapport à l'ABI (Application Binary Interface), est un package dans lequel certains fichiers ont été regroupés en un seul fichier (ou archive) puis compressés ou chiffrés. Les formats d'archive de classe augmentent la vitesse initiale d'installation de 30 % et améliorent la fiabilité de la procédure d'installation des packages et des patchs sur des systèmes de fichiers potentiellement actifs.

Les sections suivantes fournissent des informations sur la structure du répertoire d'un package d'archive, les mots clés et l'utilitaire faspac.

Structure du répertoire d'un package d'archive

L'entrée du package illustrée sur la figure suivante représente le répertoire contenant les fichiers du package. Ce répertoire doit porter le même nom que le package.

Figure 6-1 Structure du répertoire d'un package

image:Le diagramme suivant représente cinq sous-répertoires directement placés sous le répertoire du package : pkginfo, pkgmap, reloc, root et install. Il indique également leurs propres sous-répertoires.

Le tableau suivant répertorie les fonctions des fichiers et répertoires contenus dans le répertoire du package.

Elément
Description
pkginfo
Fichier décrivant le package dans son ensemble, y compris les variables spéciales d'environnement et la procédure d'installation.
pkgmap
Fichier décrivant chaque objet à installer, tel qu'un fichier, un répertoire ou un tube.
reloc
Répertoire facultatif contenant les fichiers à installer par rapport au répertoire de base (objets réadressables).
root
Répertoire facultatif contenant les fichiers à installer par rapport au répertoire root (objets root).
install
Répertoire facultatif contenant les scripts et autres fichiers auxiliaires (à l'exception de pkginfo et de pkgmap, tous les fichiers ftype i sont inclus).

Le format d'archive de classe permet au développeur du package de regrouper des fichiers provenant des répertoires reloc et root dans des archives qui peuvent être compressées, chiffrées ou autrement traitées afin d'accélérer l'installation, de réduire la taille du package ou de renforcer la sécurité du package.

L'ABI permet à tout fichier d'un package d'être attribué à une classe. Tous les fichiers d'une classe donnée peuvent être installés sur le disque à l'aide d'une méthode personnalisée définie par un script d'action de classe. Cette méthode personnalisée peut faire appel à des programmes installés sur le système cible ou à des programmes fournis avec le package. Le format résultant ressemble de près au format ABI standard. Comme l'illustre la figure suivante, un autre répertoire est ajouté. Toute classe de fichiers destinée à l'archivage est tout simplement convertie en un seul fichier et placée dans le répertoire archive. Tous les fichiers archivés sont supprimés des répertoires reloc et root, et un script d'action de classe d'installation est placé dans le répertoire install.

Figure 6-2 Structure du répertoire d'un package d'archive

image:Le diagramme représente la même structure de répertoire d'un package que celle de la Figure 6-1, à laquelle a été ajouté le sous-répertoire archive.

Mots clés de prise en charge des packages d'archive de classe

Pour prendre en charge ce nouveau format d'archive de classe, trois nouvelles interfaces représentées par des mots clés ont une signification particulière dans le fichier pkginfo. Ces mots clés sont utilisés pour désigner les classes requérant un traitement particulier. Le format de la déclaration de chaque mot clé est le suivant : keyword=class1[class2 class3 ...]. Chaque valeur de mot clé est définie dans le tableau suivant :

Mot-clé
Description
PKG_SRC_NOVERIFY
Ce mot clé indique à pkgadd de ne pas vérifier l'existence ni les propriétés des fichiers figurant dans les répertoires reloc ou root du package fourni s'ils appartiennent à une classe nommée. Il est obligatoire pour toutes les classes archivées car ces fichiers ne se trouvent plus dans un répertoire reloc ni un répertoire root. Il s'agit de fichiers au format privé stockés dans le répertoire archive.
PKG_DST_QKVERIFY
Les fichiers appartenant à ces classes sont vérifiés après l'installation à l'aide d'un algorithme rapide ne nécessitant pas ou peu de données. Cette vérification rapide définit en premier lieu les attributs de chaque fichier puis vérifie que l'opération s'est déroulée correctement. Un test est ensuite effectué pour comparer la taille du fichier et le temps de modification au fichier pkgmap. Aucune somme de contrôle n'est effectuée et la reprise sur erreur est moins efficace que celle offerte par le mécanisme de vérification standard. Dans l'éventualité d'une coupure de courant ou d'une défaillance du disque pendant l'installation, le fichier contenu risque de ne pas concorder avec les fichiers installés. Cette incohérence peut toujours être résolue avec pkgrm.
PKG_CAS_PASSRELATIVE
Le script d'action de classe de l'installation reçoit en général de la part du fichier stdin une liste de paires source/destination lui indiquant quels fichiers installer. Les classes attribuées à PKG_CAS_PASSRELATIVE ne reçoivent pas ces paires source/destination. Elles reçoivent à la place une seule liste dont la première entrée correspond à l'emplacement du package source et les autres correspondent aux chemins de destination. Ceci sert spécifiquement à simplifier l'extraction d'une archive. A partir de l'emplacement du package source, vous pouvez trouver l'archive dans le répertoire archive. Les chemins de destination sont ensuite transmis à la fonction chargée d'extraire le contenu de l'archive. Chaque chemin de destination fourni est absolu ou relatif au répertoire de base selon que son emplacement d'origine se trouve dans root ou dans reloc. Lorsque cette option est sélectionnée, il peut être difficile d'utiliser des chemins relatifs et des chemins absolus dans une même classe.

Un script d'action de classe est nécessaire pour chaque classe archivée. Il s'agit d'un fichier contenant des commandes Bourne shell qui est exécuté par pkgadd pour installer les fichiers à partir de l'archive. Si un script d'action de classe est détecté dans le répertoire install du package, pkgadd délègue toute la responsabilité de l'installation au script. Le script d'action de classe est exécuté avec les autorisations d'accès à root et peut placer ses fichiers à tout endroit du système cible.


Remarque - Le seul mot clé essentiel à l'implémentation d'un package d'archive de classe est PKG_SRC_NOVERIFY. Les autres peuvent être utilisés pour accélérer l'installation ou conserver le code.


Utilitaire faspac

L'utilitaire faspac convertit un package ABI standard en format d'archive de classe utilisé pour les packages fournis en standard. Cet utilitaire archive des fichiers à l'aide de cpio et compresse à l'aide de compress. Le package obtenu dispose d'un répertoire supplémentaire qui est stocké dans le répertoire supérieur archive. Ce répertoire doit contenir toutes les archives nommées par classe. Le répertoire install doit contenir les scripts d'action de classe nécessaires à la décompression de chaque archive. Les chemins absolus ne sont pas archivés.

L'utilitaire faspac a le format suivant :

faspac [-m Archive Method] -a -s -q [-d Base Directory] /
[-x Exclude List] [List of Packages]

Toutes les options de la commande faspac sont décrites dans le tableau suivant :

Option
Description
-m Archive Method

Spécifie une méthode d'archivage ou de compression. bzip2 est l'utilitaire de compression utilisé par défaut. Pour utiliser à la place la méthode zip/unzip, utilisez -m zip ou pour utiliser la méthode cpio/compress, utilisez -m cpio.
-a
Corrige les attributs (seul l'utilisateur root peut effectuer cette opération).
-s
Indique la conversion des packages de type ABI standard. Cette option convertit un package cpio ou compressé en package conforme ABI standard.
-q
Spécifie le mode silencieux.
-d Base Directory
Indique le répertoire contenant tous les packages concernés par l'opération de la ligne de commande. Cette option et l'entrée List of Packages s'excluent mutuellement.
-x Exclude List
Spécifie une liste de packages, séparés par des virgules ou entre guillemets, à exclure de l'opération.
List of Packages
Spécifie la liste des packages à traiter.