Ignorer les liens de navigation | |
Quitter l'aperu | |
Pages de manuel d'Image Packaging System Oracle Solaris 11 Information Library (Français) |
- Lint de package Image Packaging System
/usr/bin/pkglint [-c dir] [-r uri] [-p regexp] [-f rcfile] [-b build_no] [-v] [-l uri] | manifest ...
/usr/bin/pkglint -L [-v]
pkglint exécute une série de vérifications sur un ou plusieurs manifestes de package, éventuellement référençant un autre référentiel.
pkglint doit être utilisé au cours du processus de création du package, avant sa publication. pkglint effectue des tests exhaustifs sur les manifestes qui peuvent être trop coûteux à effectuer pendant les opérations normales de pkgsend(1) ou pkg.depotd(1M). Les vérifications pkglint comprennent des tests pour les actions en double, les attributs manquants et autorisations de fichier inhabituelles.
Les fichiers manifestes pour Lint peuvent être transmis en tant que liste séparée par des espaces de fichiers locaux sur la ligne de commande, ou des manifestes peuvent être récupérés à partir d'un référentiel.
Au cours de la récupération des manifestes à partir de référentiels, lors de sa première exécution, pkglint crée et remplit les images d'utilisateur de pkg(5) dans le répertoire de cache indiqué. Si l'option -r est fournie, une image d'utilisateur nommée cache_dir/ref_image est créée pour le référentiel de référence. Si l'option -l est fournie, une image d'utilisateur nommée cache_dir/lint_image est créée pour le référentiel Lint. Aucun contenu n'est installé dans ces images. Ces images sont utilisées uniquement par pkglint pour récupérer des manifestes dans les référentiels.
Les appels suivants de pkglint peuvent réutiliser le répertoire de cache et peuvent omettre tous les arguments -r ou -l.
pkglint fournit une prise en charge limitée pour la configuration des éditeurs dans le répertoire de cache. Utilisez pkg(1) pour effectuer une configuration d'éditeur plus complexe sur ces images.
pkglint permet aux créateurs de package de contourner les vérifications pour un manifeste ou une action donné. Un manifeste ou une action qui contient l'attribut pkg.limited défini sur True ne génère pas de sortie Lint pour ce manifeste ou cette action.
Des paramètres pkg.linted granulaires supplémentaires peuvent être créés à l'aide de sous-chaînes de noms de vérification pkglint. Par exemple, pkg.linted. check.id défini sur True contourne toutes les vérifications avec le nom check.id pour le manifeste ou l'action donné.
Le comportement de pkglint peut être configuré en spécifiant un fichier pkglintrc. Par défaut, pkglint recherche dans /usr/share/lib/pkg/pkglintrc et $HOME/.pkglintrc pour les options de configuration. Utilisez l'option -f pour spécifier un autre fichier de configuration.
Au cours de l'exécution de Lint, les erreurs ou les avertissements sont imprimés dans stderr.
Les options suivantes sont prises en charge :
Indique un numéro de version utilisé pour limiter la liste des packages utilisés au cours de l'opération de Lint à partir des référentiels Lint et de référence. Si aucune option -b n'est spécifiée, les dernières versions des packages sont utilisées. Reportez-vous à la propriété de configuration version.pattern.
Spécifie un répertoire local utilisé pour la mise en cache des métadonnées de package à partir des référentiels Lint et de référence.
Indique un URI représentant l'emplacement du référentiel Lint. Les publications basées sur HTTP et le système de fichiers sont prises en charge. Si vous spécifiez -l, vous devez également spécifier -c.
Répertorie les vérifications Lint connues et exclues, puis quitte. Affiche le nom abrégé et la description de chaque vérification. Associée à l'indicateur -v, affiche la méthode qui implémente la vérification au lieu de la description.
Configure les sessions pkglint à l'aide du fichier de configuration config_file.
Spécifie une expression régulière utilisée pour restreindre la liste des packages à consulter à partir du référentiel Lint. Tous les manifestes du référentiel de référence sont chargés (à condition qu'ils correspondent à la valeur de -b, si fourni), en ignorant ce motif.
Indique un URI représentant l'emplacement du référentiel de référence. Si vous spécifiez -r, vous devez également spécifier -c.
Exécute pkglint en mode détaillé, remplaçant les paramètres log_level dans le fichier de configuration.
Affiche un message d'utilisation.
Le fichier de configuration pkglintrc prend les arguments clés et de valeurs suivants :
Niveau minimum auquel transmettre les messages Lint. Les messages Lint inférieurs à ce niveau sont ignorés. La valeur par défaut est INFO.
Les niveaux de journal dans l'ordre du moins grave au plus grave sont DEBUG, INFO, WARNING, ERROR et CRITICAL.
Si True, effectue des vérifications qui pourraient n'avoir de sens que pour les packages publiés. La valeur par défaut est True.
Le mécanisme de plug-in de pkglint permet l'ajout d'autres modules Lint au moment de l'exécution. Toute clé démarrant avec pkglint.ext. prend une valeur qui doit être un module Python entièrement spécifié. Reportez-vous à la section Développeurs pour de plus amples informations.
Liste séparée par des espaces de modules Python entièrement spécifiés, de classes ou des noms de fonctions à omettre dans l'ensemble des vérifications effectuées.
Si True, utilise un outil de suivi de progression lors de l'itération sur des manifestes pendant les exécutions Lint. La valeur par défaut est True.
Motif de version utilisé lors de la spécification d'un numéro de version par rapport à laquelle effectuer une opération Lint (-b). S'il n'est pas spécifié dans le fichier de configuration, l'option -b utilise le motif *,5.11-0., correspondant à tous les composants de la version 5.11, avec un préfixe de branche de 0.
Pour étendre l'ensemble des vérifications effectuées par pkglint, la sous-classe pkg.lint.base.Checker et ses sous-classes, ManifestChecker, ActionChecker et ContentChecker. Ajoutez le nom de module Python qui contient ces classes pour une nouvelle clé pkglint.ext. dans le fichier de configuration.
Des instances de ces nouvelles sous-classes sont créées par pkglint au démarrage. Des méthodes à l'intérieur de chaque sous-classe avec l'argument de mot-clé spécial pkglint_id sont appelées au cours de la session Lint. Ces méthodes doivent avoir la même signature que la méthode check() correspondante dans la super-classe. Les méthodes doivent également se voir affecter un attribut pkglint_desc, qui est utilisé comme la description imprimée par pkglint -L.
Les paramètres sont disponibles aux sous-classes Checker, ce qui leur permet de régler leur comportement. La convention de nommage de paramètre recommandée est pkglint_id.name. Les valeurs de paramètre peuvent être stockées dans le fichier de configuration, ou peuvent être accédées depuis les manifestes ou actions récupérés à l'aide de la méthode LintEngine.get_param(). Lors de l'accès aux paramètres à partir du manifeste, le préfixe pkg.lint est ajouté au début du nom de la clé pour garantir que les paramètres pkglint ne se superposent pas à n'importe quelle valeur d'action ou de manifeste existante.
Exemple 1 Première exécution sur un référentiel particulier
Exécution d'une pkglint pour la première fois sur un référentiel donné.
$ pkglint -c /space/cache -r http://localhost:10000 mymanifest.mf
Exemple 2 Exécution suivante sur le même référentiel
Une exécution suivante avec le même référentiel utilisé dans l'exemple 1.
$ pkglint -c /space/cache mymanifest-fixed.mf
Exemple 3 Utilisation d'un référentiel Lint avec un ensemble de manifestes limité
Exécution d'une session pkglint avec un référentiel Lint et spécification d'un sous-ensemble de manifestes à vérifier.
$ pkglint -c /space/othercache -l http://localhost:10000 \ -p '.*firefox.*'
Exemple 4 Spécification d'une version
Exécution d'une session pkglint par rapport à une version donnée en mode détaillé.
$ pkglint -c /space/cache -r http://localhost:10000 \ -l http://localhost:12000 -b 147 -v
Exemple 5 Modification d'un fichier de configuration
Un fichier de configuration avec un nouveau module Lint, excluant certaines vérifications.
$ cat ~/.pkglintrc [pkglint] log_level = DEBUG # log_level = INFO pkglint.ext.mycheck = org.timf.mychecks pkglint.ext.opensolaris = pkg.lint.opensolaris pkglint.exclude: pkg.lint.opensolaris.OpenSolarisActionChecker pkg.lint.pkglint.PkgActionChecker.unusual_perms pkg.lint.pkglint.PkgManifestChecker pkg.lint.opensolaris.OpenSolarisManifestChecker
Les valeurs de sortie renvoyées sont les suivantes :
La commande a réussi.
Une ou plusieurs sorties émises par des vérifications Lint.
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 :
|
pkg(1), pkg.depotd(1m), pkgsend(1), pkg(5)
http://hub.opensolaris.org/bin/view/Project+pkg/