Ignorer les liens de navigation | |
Quitter l'aperu | |
Pages de manuel d'Image Packaging System Oracle Solaris 11 Information Library (Français) |
- Client de publication d'Image Packaging System
/usr/bin/pkgsend [options] command [cmd_options] [operands]
/usr/bin/pkgsend generate [-T pattern] [--target file] source ...
/usr/bin/pkgsend publish [-b bundle ...] [-d source ...] [-s repo_uri_or_path] [-T pattern] [--no-catalog] [manifest ...]
pkgsend permet de publier de nouveaux packages et nouvelles versions de package vers un référentiel IPS à l'aide de manifestes de package. Pour créer ou gérer des référentiels, reportez-vous à pkgrepo(1). Pour créer des archives de packages à partir de packages dans un référentiel existant, reportez-vous à pkgrecv(1). Pour plus d'informations sur les manifestes de package, reportez-vous à pkg(5).
Après une opération pkgsend, exécutez pkgrepo refresh ou pkgrepo rebuild sur le référentiel pour construire des index de recherche.
Les options suivantes sont prises en charge :
Affiche un message d'utilisation.
Les sous-commandes suivantes sont prises en charge :
Lit chaque source (telle qu'un package SVR4, un répertoire ou un fichier tar) et émet le manifeste qui décrit la source à stdout. Dans le manifeste de sortie, le propriétaire des actions file et dir est défini sur root et leur groupe sur bin.
Vous pouvez ensuite annoter le manifeste de sortie, ajouter ou analyser ses dépendances à l'aide de pkgdepend(1) et vérifier son exactitude à l'aide de pkglint(1) avant de le transmettre à la sous-commande publish.
Les sources suivantes sont prises en charge :
Packages SVR4 au format système de fichiers
Packages SVR4 au format de flux de données
Fichiers tar
Répertoires
Si le nom de base des fichiers dans la source correspond aux motifs spécifiés avec -T, l'horodatage du fichier est ajouté à l'action de ce fichier. Le pattern utilise les règles de correspondance de shell :
Correspond à tous les caractères.
Correspond à un caractère unique.
Correspond à n'importe quel caractère dans seq.
Correspond à n'importe quel caractère ne figurant pas dans seq.
Lorsque l'origine indiquée est un répertoire, il n'existe aucun moyen simple de distinguer une action file d'une action hardlink lorsqu'il existe plusieurs noms de chemins pour un seul inode. Normalement, le premier trouvé dans le parcours du système de fichiers est considéré comme un fichier et le reste comme des liens physiques. Cela peut être arbitraire, en fonction de l'implémentation du système de fichiers. Pour spécifier les noms de chemin qui doivent être traités comme des fichiers, transmettre chaque nom de chemin en tant qu'argument de l'option --target. Cette option n'a aucun effet sur d'autres types de sources, car ils sont capables d'exprimer quels noms de chemin sont des fichiers ou des liens physiques.
Quand des packages SVR4 sont fournis en tant que source, pkgsend vérifie qu'aucun fichier avec scripts d'action de classe n'est présent et qu'aucun script de pré-installation, de post-installation, de pré-suppression ou de post-suppression n'est présent. Une exception est faite pour les manifestes SMF installés avec la classe manifeste. BASEDIR est supprimé de tous les chemins réadressables.
Le paramètre DESC SVR4 est converti en valeur pkg.description. Le paramètre NAME SVR4 est converti en valeur pkg.summary.
Publie un package à l'aide des manifestes de package spécifiés vers le référentiel de packages cible, récupérant des fichiers pour le package de la source fournie. Si plusieurs manifestes sont spécifiés, ils sont joints dans l'ordre indiqué. Si un manifeste n'est pas spécifié, il est lu à partir de stdin.
Avec -b, ajoute le bundle spécifié à la liste de sources à parcourir lors de la recherche de fichiers dans le manifeste. Les bundles sont des sources telles que les fichiers tar et les packages SVR4. Si cette option est spécifiée plusieurs fois, les sources sont recherchées dans l'ordre dans lequel elles apparaissent sur la ligne de commande. Si -b et -d sont spécifiés, les sources de -d sont recherchées en premier. Pour obtenir une description des bundles pris en charge et de la façon dont ils sont utilisés, reportez-vous à la sous-commande generate ci-dessus.
Avec -d, ajoute le répertoire spécifié à la liste de sources à parcourir lors de la recherche de fichiers dans le manifeste. Si cette option est spécifiée plusieurs fois, les sources sont recherchées dans l'ordre dans lequel elles apparaissent sur la ligne de commande. Pour obtenir une description des sources prises en charge et de la façon dont elles sont utilisées, reportez-vous à la sous-commande generate ci-dessus.
Avec -s, publie le package vers le référentiel situé à l'URI ou le chemin système de fichiers indiqué. Reportez-vous à la section Notes ci-dessous pour plus d'informations sur les restrictions et les suggestions de publication. Reportez-vous également à la section Variables d'environnement.
Avec --no-catalog, n'ajoute pas le package au catalogue de l'éditeur. Cette option est recommandée lorsque plusieurs packages sont en cours de publication en même temps alors que des mises à jour de catalogues d'éditeur doivent être effectuées en série. Une fois la publication terminée, la sous-commande refresh de pkgrepo (1) peut être utilisée pour ajouter les nouveaux packages aux catalogues d'éditeurs respectifs.
Pour toutes les autres options, reportez-vous à la sous-commande generate ci-dessus pour connaître leur utilisation et leurs effets.
Chemin ou URI du référentiel de destination.
Exemple 1 Création et publication d'un package
Créez un package à l'aide de pkgsend generate et publiez-le.
$ pkgsend generate /path/to/proto > /path/to/manifests/foo.p5m
Ajoutez le package FMRI pour l'éditeur example.com au début de foo.p5m.
set name=pkg.fmri value=pkg://example.com/foo@1.0
Le manifeste qui en résulte doit ressembler à ceci :
set name=pkg.fmri value=pkg://example.com/foo@1.0 dir group=sys mode=0755 owner=root path=usr dir group=bin mode=0755 owner=root path=usr/bin file usr/bin/foo group=bin mode=0555 owner=root path=usr/bin/foo
$ pkgsend publish -s http://example.com:10000 -d /path/to/proto \ /path/to/manifests/foo.p5m
Exemple 2 Création et publication d'un package Trivial
Créez un manifeste pour l'éditeur example.com contenant les lignes suivantes :
set name=pkg.fmri value=pkg://example.com/foo@1.0-1 file /exdir/foo mode=0555 owner=root group=bin path=/usr/bin/foo
Publiez le package :
$ pkgsend publish -s http://example.com:10000 -d /exdir
Exemple 3 Utilisation d'un manifeste existant
Publiez un package à l'aide d'une publication basée sur le système de fichiers et d'un manifeste existant.
$ pkgsend publish -s /tmp/example_repo -d /tmp/pkg_files \ /tmp/pkg_manifest
Les valeurs de sortie renvoyées sont les suivantes :
La commande a réussi.
Une erreur s'est produite.
Des options de ligne de commande incorrectes ont été spécifiées.
Une exception imprévue est survenue.
Reportez-vous à attributes(5) pour obtenir la description des attributs suivants :
|
pkgdepend(1), pkgrepo(1), pkg.depotd(1m), pkg(5)
http://hub.opensolaris.org/bin/view/Project+pkg/
En raison de restrictions de protocole de publication, les publications basées sur le système de fichiers doivent être utilisées lors de la publication de fichiers de package individuels dont la taille est supérieure à 128 Mo. Une publication basée sur le système de fichiers est également recommandée lorsqu'un contrôle d'accès à un référentiel est nécessaire.
Lors de l'utilisation d'une publication basée sur le système de fichiers, tous les processus pkg.depotd qui servent le référentiel cible doivent être redémarrés une fois la publication terminée pour que les modifications soient prises en compte dans son interface Web ou les réponses à des recherches. Reportez-vous à pkg.depotd(1M) pour plus d'informations.