JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Pages de manuel d'Image Packaging System     Oracle Solaris 11 Information Library (Français)
search filter icon
search icon

Informations document

Préface

Commandes utilisateur

packagemanager(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkglint(1)

pkgmerge(1)

pkgmogrify(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pm-updatemanager(1)

Commandes d'administration système

Normes, environnements et macros

pkgdepend

- Analyseur de dépendances Image Packaging System

Synopsis

/usr/bin/pkgdepend [options] command [cmd_options] [operands]
/usr/bin/pkgdepend generate [-IMm] -d dir [-d dir]
    [-D name=value] [-k path] manifest_file
/usr/bin/pkgdepend resolve [-moSv] [-d output_dir]
    [-s suffix] manifest_file ...

Description

pkgdepend est utilisé pour générer et résoudre les dépendances des packages. Un package peut dépendre de fichiers d'autres packages. pkgdepend est généralement utilisé en deux passes : génération de dépendance de fichier et résolution fichier à package.

La sous-commande generate examine le contenu d'un package et détermine les fichiers externes dont le package a besoin.

La sous-commande resolve permet d'accéder à la liste des fichiers à partir de l'étape generate et effectue des recherches dans un ensemble de packages de référence afin de déterminer les noms des packages contenant les fichiers dépendants. L'ensemble de packages de référence qui font l'objet de recherche pour les fichiers dépendants sont les packages actuellement installés sur le système de l'éditeur.

Plusieurs composants des fichiers livrés sont utilisés comme sources d'informations de dépendance :

ELF

Les en-têtes ELF dans les fichiers livrés sont analysés pour identifier les informations de dépendance, avec les options -k et -D modifiant les informations obtenues. Pour en savoir plus sur les dépendances ELF, reportez-vous à la page de manuel ldd(1) et au document Linker and Libraries Guide .

Scripts

Les scripts shell qui contiennent des lignes #! référençant un interpréteur engendrent une dépendance sur le package qui fournit cet interpréteur.

Python

Les scripts python sont tout d'abord analysés comme des scripts. En outre, toute importation déclarée par le script peut également servir de source d'informations de dépendance.

Liens physiques

Les liens physiques dans les fichiers manifestes engendrent une dépendance sur le package qui fournit la cible du lien.

SMF

Les manifestes de service SMF fournis qui incluent des dépendances require_all entraînent des dépendances sur les packages qui fournissent les manifestes SMF qui fournissent ces FMRI.

Options

Les options suivantes sont prises en charge :

-R dir

S'exécute sur l'image résidant au niveau de dir. Si aucun répertoire n'a été spécifié ou déterminé en fonction de l'environnement, la valeur par défaut est /. Reportez-vous à la section Variables d'environnement pour plus d'informations.

--help ou -?

Affiche un message d'utilisation.

Sous-commandes

Les sous-commandes suivantes sont prises en charge :

generate [-IMm] -d dir [-d dir] [-D name=value] [-k path] manifest_file

Produit les dépendances sur les fichiers du manifeste spécifié par manifest_file.

Avec -I, affiche les dépendances qui sont satisfaites dans manifest_file. N'utilisez pas le résultat de -I avec pkgdepend resolve.

Avec -M, affiche une liste des types de fichiers qui n'ont pas pu être analysés.

Avec -m, répète le manifeste d'origine avec les dépendances ajoutées postérieurement qui sont détectées.

Avec -d, ajoute dir à une liste de répertoires dans lesquels rechercher les fichiers manifestes.

Pour chaque -D, ajoute la value comme moyen de développer le jeton name dans les chemins d'exécution des dépendances de fichier ELF.

Pour chaque -k, ajoute le path à la liste de chemins d'exécution pour rechercher les modules de noyau. L'utilisation de l'argument -k supprime les chemins par défaut /kernel et /usr/kernel.

Les chemins d'exécution comme ceux spécifiés par l'option -k peuvent également être spécifiés par action ou par manifeste en utilisant l'attribut action ou manifeste pkg.depend.runpath. La valeur de l'attribut pkg.depend.runpath est une chaîne de valeurs séparées par des deux-points (:) des chemins à utiliser.

L'utilisation de -k est remplacée par n'importe quel attribut pkg.depend.runpath défini dans le manifeste ou l'action.

Le jeton spécial $PKGDEPEND_RUNPATH peut être utilisé comme composant de l'attribut pkg.depend.runpath afin d'inclure le chemin d'exécution système standard pour le fichier en cours d'analyse.

Dans certains cas, vous pouvez être amené à empêcher la génération automatique des dépendances. Si, par exemple, un package fournit un exemple de script Python qui importe un ensemble de modules, ces modules importés par l'exemple de script ne sont pas des dépendances du package qui fournit l'exemple de script. Utilisez l'attribut action ou manifest pkg.depend.bypass-generate pour empêcher la génération de dépendances contre les fichiers spécifiés.

Les valeurs pkg.depend.bypass-generate sont des expressions régulières Python correspondant aux noms de fichier. Les expressions régulières sont implicitement ancrées au début et à la fin du chemin du fichier. La valeur donnée dans l'exemple suivant correspond à this/that mais ne correspond pas à something/this/that/the/other.

pkg.depend.bypass-generate=this/that

Pour plus d'informations sur la syntaxe d'expression régulière Python, utilisez la commande pydoc re ou reportez-vous à une documentation complète à l'adresse suivante : http://docs.python.org/dev/howto/regex.html.

Lorsque les manifestes d'entrée pkgdepend generate contiennent des fichiers manifestes SMF, les services ou instances SMF déclarés par ces derniers sont inclus dans la sortie de pkgdepend. Ces services ou instances SMF se présentent sous la forme d'une action set portant le nom org.opensolaris.smf.fmri.

resolve [-moSv] [-d output_dir] [-s suffix] manifest_file ...

Transforme les dépendances des fichiers ayant des dépendances au niveau des packages qui distribuent ces fichiers. Les dépendances sont d'abord résolues par rapport aux manifestes fournis sur la ligne de commande, puis par rapport aux packages installés sur le système. Par défaut, les dépendances de chaque manifeste sont placées dans un fichier nommé manifest_file.res.

Avec -m, répète le manifeste duquel sont supprimées les dépendances générées à l'étape generate, avant d'ajouter les dépendances résolues.

Avec -o, génère les résultats sur la sortie standard. Cette option est destinée à l'humain. L'ajout de cette sortie à un fichier peut engendrer un manifeste non valide. Les options -d et -s sont fortement recommandées à la place de l'option -o pour une utilisation dans un pipeline pour le traitement d'un manifeste.

Avec -d, enregistre les dépendances résolues de chaque manifeste dans un fichier distinct de output_dir. Par défaut, chaque fichier porte le même nom de base que le manifeste à la source des dépendances qu'il contient.

Avec -s, pour chaque fichier de sortie, ajoute suffix au nom de base du fichier qui était la source des dépendances résolues. Un “.” est ajouté avant suffix s'il n'est pas fourni.

Avec -S, résout uniquement par rapport aux manifestes fournis sur la ligne de commande et non ceux installés sur le système.

Avec -v, inclut d'autres métadonnées de débogage de dépendance de package.

Exemples

Exemple 1 Génération de dépendances

Générez les dépendances pour le manifeste écrit en foo, dont le répertoire de contenu se situe dans ./bar/baz, et stockez les résultats dans foo.fdeps.

$ pkgdepend generate -d ./bar/baz foo > foo.fdeps

Exemple 2 Résolution de dépendances

Résolvez les dépendances de fichiers dans foo.fdeps et bar.fdeps les unes par rapport aux autres et par rapport aux packages installés sur le système.

$ pkgdepend resolve foo.fdeps bar.fdeps
$ ls *.res
foo.fdeps.res    bar.fdeps.res

Exemple 3 Génération et résolution de dépendances pour deux manifestes

Générez les dépendances de fichier pour deux manifestes (foo et bar) et conservez toutes les informations dans les manifestes d'origine. Ensuite, résolvez les dépendances de fichier et placez les manifestes obtenus dans ./res. Ces manifestes obtenus peuvent être utilisés avec pkgsend publish.

$ pkgdepend generate -d /proto/foo -m foo > ./deps/foo
$ pkgdepend generate -d /proto/bar -m bar > ./deps/bar
$ pkgdepend resolve -m -d ./res ./deps/foo ./deps/bar
$ ls ./res
foo    bar

Exemple 4 Ajout de valeurs à des jetons pour des dépendances de fichier ELF

Remplacez tous les jetons PLATFORM dans les chemins d'exécution des fichiers ELF par sun4v et sun4u lors de la génération des dépendances pour le manifeste écrit en foo dont le répertoire de contenu est dans /.

$ pkgdepend generate -d / -D 'PLATFORM=sun4v' -D 'PLATFORM=sun4u' foo

Exemple 5 Spécification d'un répertoire de module de noyau

Spécifiez /kmod comme répertoire dans lequel vous souhaitez rechercher les modules de noyau lors de la génération des dépendances pour le manifeste écrit en foo dont le répertoire de contenu est /.

$ pkgdepend generate -d / -k /kmod foo

Exemple 6 Contournement de la génération de dépendances

Ajoutez opt/python au chemin d'exécution Python standard pour un script Python donné et contournez la génération de dépendances par rapport à tous les modules Python appelés test pour un fichier fourni en tant que opt/python/foo/file.py .

Evitez de générer les dépendances par rapport aux fichiers fournis dans usr/lib/python2.6/vendor-packages/xdg.

$ cat manifest.py
set name=pkg.fmri value=pkg:/mypackage@1.0,1.0
set name=pkg.summary value="My test package"
dir path=opt mode=0755 group=sys owner=root
dir path=opt/python mode=0755 group=sys owner=root
dir path=opt/python/foo mode=0755 group=sys owner=root
file NOHASH path=opt/python/__init__.py mode=0644 group=sys owner=root
file NOHASH path=opt/python/foo/__init__.py mode=0644 group=sys owner=root
#
# Add runpath and bypass-generate attributes:
#
file NOHASH path=opt/python/foo/file.py mode=0644 group=sys owner=root \
    pkg.depend.bypass-generate=.*/test.py.* \
    pkg.depend.bypass-generate=.*/testmodule.so \
    pkg.depend.bypass-generate=.*/test.so \
    pkg.depend.bypass-generate=usr/lib/python2.6/vendor-packages/xdg/.* \
    pkg.depend.runpath=$PKGDEPEND_RUNPATH:/opt/python

$ pkgdepend generate -d proto manifest.py

Variables d'environnement

PKG_IMAGE

Spécifie le répertoire qui contient l'image à utiliser pour les opérations de package. Cette valeur est ignorée si -R est spécifié.

État de sortie

Les valeurs de sortie renvoyées sont les suivantes :

0

Tout a fonctionné.

1

Une erreur s'est produite.

2

Des options de ligne de commande incorrectes ont été spécifiées.

99

Une exception imprévue est survenue.

Attributs

Reportez-vous à attributes(5) pour obtenir la description des attributs suivants :

TYPE D'ATTRIBUT
VALEUR DE L'ATTRIBUT
Disponibilité
package/pkg
Stabilité de l'interface
Non validé

Voir aussi

pkg(5)

http://hub.opensolaris.org/bin/view/Project+pkg/