projman/hlp/fr/tcl/package.htm
2015-10-19 14:27:31 +04:00

57 lines
10 KiB
HTML

<HTML><HEAD>
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
</HEAD>
<BODY>
<div><H3><b>package&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commandes Internes Tcl</b></H3></div>
<HR ALIGN="center">
<div><b>NOM</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">package - Utilités pour le chargement et le contrôle de version de package
</div><br>
<div><b>SYNTAXE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><b>package forget ?</b><i>package package ...</i>?<br>
<b>package ifneeded </b><i>package version</i> ?<i>script</i>?<br>
<b>package names</b><br>
<b>package present </b>?<b>-exact</b>? <i>package </i>?<i>version</i>?<br>
<b>package provide </b><i>package </i>?<i>version</i>?<br>
<b>package require </b>?<b>-exact</b>? <i>package </i>?<i>version</i>?<br>
<b>package unknown </b>?<i>command</i>?<br>
<b>package vcompare </b><i>version1 version2</i><br>
<b>package versions </b><i>package</i><br>
<b>package vsatisfies </b><i>version1 version2</i><br>
</div> <br>
<div><b>DESCRIPTION</b></div> <br>
<div ALIGN="LEFT" style="margin-left: 51px;">Cette commande maintient une base de données simple des packages disponibles pour l'interpréteur courant et comment les charger dans l'interpréteur. Elle supporte plusieurs versions de chaque package et prépare la version correcte d'un package à être chargée en se basant sur ce qui est nécessaire pour l'application. Cette commande detecte et rapporte aussi les conflits de version. Typiquement, seules les commandes <b>package require</b> et <b>package </b><b>provide</b> sont appelées dans les scriptsTcl normaux, les autres commandes sont utilisées par les scripts système qui maintiennent la base de données des packages. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Le comportement de la commande <b>package</b> est déterminé par son premier argument. Les formes suivantes sont permises:
<DL>
<DT><b>package forget ?</b><i>package package ...</i>?</DT><DD>Efface toute information concernant chaque package spécifié de cet interpréteur, incluant l'information fournie par <b>package ifneeded</b> et <b>package provide</b>.
</DD>
<DT><b>package ifneeded </b><i>package version</i> ?<i>script</i>?</DT><DD>Cette commande apparait seulement dans les scripts de configuration système pour réparer la base de données des packages. Elle indique qu'une version particulière d'un package est disponible si besoin, et que le package peut être ajouté à l'interpréteur par l'exécution de <i>script</i>. Le script est sauvegardés dans une base de données pour être utilisé par les commandes suivantes <b>package require</b> typiquement, <i>script</i> parmètre l'auto-loading pour les commandes dans le package (ou appelle <A HREF="134.htm"><b>load</b></A> et/ou <A HREF="163.htm"><b>source</b></A> directement), et ensuite appelle <b>package provide</b> pour indiquer que le package est présent. Il peut y avoir l'information dans la base de données pour plusieurs versions différentes d'un seul package. Si la base de données contient déjà l'information pour <i>package</i> et <i>version</i>, le nouveau <i>script</i> remplace l'existant. Si l'argument <i>script</i> est omis, le script courant pour la version <i>version</i> du package <i>package</i> est renvoyé, ou une chaîne vide si aucune commande <b>package ifneeded</b> a été appelée pour ces <i>package</i> et <i>version</i>.
</DD>
<DT><b>package names</b></DT><DD>Renvoie une liste des noms de tous les packages dans l'interpréteur pour lequel une version a été fournie (via <b>package provide</b>) ou pour lequel un script <b>package ifneeded</b> est disponible. L'ordre des éléments dans la liste est arbitraire.
</DD>
<DT><b>package present </b>?<b>-exact</b>? <i>package </i>?<i>version</i>?</DT><DD>Cette commande est équivalente à <b>package require</b> excepté qu'elle n'essaye pas et charge le package s'il n'est pas déjà chargé.
</DD>
<DT><b>package provide </b><i>package </i>?<i>version</i>?</DT><DD>Cette commande est appelée pour indiquer quelle version <i>version</i> du package <i>package</i> est maintenant présente dans l'interpréteur. Elle est typiquement appelée une fois comme partie d'un script<b> ifneeded</b>, et de nouveau par les package lui-même quand il est finalement chargé. Un erreur se produit si une version différente de <i>package</i> a été fournie par une précédente commande <b>package provide</b>. Si l'argument <i>version</i> est omis, alors la commande retourne le numéro de version qui est couramment fourni, ou une chaîne vide si aucune commande <b>package provide</b> n'a été appelée pour <i>package</i> dans cet interpréteur.
</DD>
<DT><b>package require </b>?<b>-exact</b>? <i>package </i>?<i>version</i>?</DT><DD>Cette commande est typiquement appelée par le code Tcl qui souhaite utiliser une version particulière d'un package. Les arguments indiquent quel package est demandé, et la commande assure qu'une version convenable du package est chargé dans l'interpréteur. Si la commande réussit, elle retourne le numéro de version qui est chargé autrement elle génère une erreur. Si le switch <b>-</b> <b>exact</b> et l'argument <i>version</i> sont spécifiés alors seulement la version donnée est admise. Si <b>-exact</b> est omis mais que <i>version</i> est spécifié, alors les versions supérieures à <i>version</i> sont aussi admises tant qu'elles ont le même numéro de version majeure que <i>version</i>. Si <b>-exact</b> et <i>version</i> sont omis alors toute version est acceptable. Si une version de <i>package</i> a déjà été fournie (en appelant l commande<b> package provide</b>), alors son numéro de version doit satisfaire les critères donnés par <b>-exact</b> et <i>version</i> et la commande retourne immédiatement. Autrement, la commande recherche la base de données d'information fournie par les précedentes commandes <b>package ifneeded</b> pour voir si une version acceptable du package est disponible. Si c'est le cas, le script avec le numéro de version acceptable le plus èlevé est appelé; elle doit faire tout ce qui est nécessaire pour charger le package, incluant l'appel de <b>package provide</b> pour le package. Si la base de données <b>package ifneeded</b> ne contient pas de version acceptable du package et qu'une commande <b>package unknown</b> a été spécifiée pour l'interpréteur alors cette commande est appelée;ê quand elle se termine, Tcl vérifie de nouveau si le package est maintenant fourni ou s'il y a un script <b>package ifneeded</b> pour celui-ci. Si toutes ces étapes échouent pour fournir une version acceptable du package, alors la commande retourne une erreur.
</DD>
<DT><b>package unknown </b>?<i>command</i>?</DT><DD>Cette commande apporte une commande &quot;de la dernière chance&quot; à appeler pendant <b>package require</b> si aucune version convenable d'un package ne peut être trouvée dans la base de données<b> package ifneeded</b>. Si l'argument <i>command</i> est fourni, il contient la première partieê d'une commande;ê quand la commande est appelée pendant une commande<b> package require</b>, Tcl ajoute deux arguments supplémentaires donnant les nom et version du package désiré. Par exemple, si <i>command</i> est <b>foo bar</b> et que plus tard la commande <b>package require test 2.4</b> est appelée, alors Tcl exécutera la commande <b>foo bar test 2.4</b> pour charger le package. Si aucun numéro de version n'est donné à la commande<b> package require</b>, alors l'argument version pour la commande appelée sera une chaîne vide. Si la commande <b>package unknown </b>est appelée sans argument <i>command</i>, alors le courant script <b>package unknown </b>est renvoyé, ou une chaîne vide s'il n'existe pas. Si <i>command</i> est spécifié comme chaîne vide, alors le courant script <b>package unknown </b>est enlevé, s'il existe.
</DD>
<DT><b>package vcompare </b><i>version1 version2</i></DT><DD>Compare les numéros de versions donnés par <i>version1</i> et <i>version2</i>. Renvoie -1 si <i>version1</i> est une version précédente à <i>version2</i>, 0 si ils sont égal, et 1 si <i>version1</i> est plus récente que <b>version2</b>.
</DD>
<DT><b>package versions </b><i>package</i></DT><DD>Renvoie une liste de tout les numéros de versions de <i>package</i> pour lequel l'information a été fournie par des commandes<b> package ifneeded</b>.
</DD>
<DT><b>package vsatisfies </b><i>version1 version2</i></DT><DD>Renvoie 1 si les scripts écrits pour <i>version2</i> fonctionneront avec <i>version1</i> (ex. <i>version1</i> est égal à ou supérieur à <i>version2</i> et elles ont le même numéro de version majeure), 0 autrement.
</DD>
</DL>
</div>
<div><b>NUMEROS DE VERSION </b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Les numéros de version consistent en un ou plusieurs nombres décimaux séparés par des points, tel que 2 ou 1.162 ou 3.1.13.1. Le premier nombre est appelé le numéro de version majeure. Des nombres supérieurs correspondentê à des versions ultérieures d'un package, avec le nombre le plus à gauche plus significatif. Par exemple, la version 2.1 est ultérieure à 1.3 et version 3.4.6 est ultérieure à 3.3.5. Les champs manquants sont équivalent à zéros:ê la version 1.3 est la même que la version 1.3.0 et 1.3.0.0, donc elle est antérieure à 1.3.1 ou 1.3.0.2. Un numéro de version ultérieur est supposé être compatible avec un numéro de version précédent tant que les deux versions ont le même numéro de version majeure. Par exemple, les scripts Tcl écrits pour la version 2.3 d'un package devraient fonctionner sous les versions 2.3.2, 2.4, et 2.5.1. Les changements dans le numéro de version majeure signifient des changements incompatible: si le code est écrit pour utiliser la version 2.1 d'un package, it n'est pas garanti qu'il fonctionne non modifié avec soit la version 1.7.3 soit la version 3.1.ê <br>
</div><br>
<div><b>INDEX DE PACKAGES </b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">La manière recommandée d'utiliser les packages en Tcl est d'appeler les commandes <b>package </b><b>require</b> et <b>package provide</b> dans les scripts, et d'utiliser la fonction <A HREF="146.htm"><b>pkg_mkIndex</b></A> pour créer des fichiers index de package. Une fois que vous avez fait ceci, les packages seront chargés automatiquement en réponse aux commandes<b> package require</b>. Voir la documentation d <A HREF="146.htm"><b>pkg_mkIndex</b></A> pour les détails. </div><br>
<div>Dernière révision: 7.5</div>
<br>
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A>&nbsp;&nbsp;<A HREF="142.htm"><b>Précédent</b></A>&nbsp;&nbsp;<A HREF="144.htm"><b>Suivant</b></A></div>
</BODY></HTML>