projman/hlp/fr/tcl/package.htm

57 lines
10 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<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<69>s pour le chargement et le contr<74>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<6E>es simple des packages disponibles pour l'interpr<70>teur courant et comment les charger dans l'interpr<70>teur. Elle supporte plusieurs versions de chaque package et pr<70>pare la version correcte d'un package <20> <20>tre charg<72>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<65>es dans les scriptsTcl normaux, les autres commandes sont utilis<69>es par les scripts syst<73>me qui maintiennent la base de donn<6E>es des packages. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Le comportement de la commande <b>package</b> est d<>termin<69> 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<73>cifi<66> de cet interpr<70>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<73>me pour r<>parer la base de donn<6E>es des packages. Elle indique qu'une version particuli<6C>re d'un package est disponible si besoin, et que le package peut <20>tre ajout<75> <20> l'interpr<70>teur par l'ex<65>cution de <i>script</i>. Le script est sauvegard<72>s dans une base de donn<6E>es pour <20>tre utilis<69> par les commandes suivantes <b>package require</b> typiquement, <i>script</i> parm<72>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<70>sent. Il peut y avoir l'information dans la base de donn<6E>es pour plusieurs versions diff<66>rentes d'un seul package. Si la base de donn<6E>es contient d<>j<EFBFBD> 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<6F>, ou une cha<68>ne vide si aucune commande <b>package ifneeded</b> a <20>t<EFBFBD> appel<65>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<70>teur pour lequel une version a <20>t<EFBFBD> fournie (via <b>package provide</b>) ou pour lequel un script <b>package ifneeded</b> est disponible. L'ordre des <20>l<EFBFBD>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 <20>quivalente <20> <b>package require</b> except<70> qu'elle n'essaye pas et charge le package s'il n'est pas d<>j<EFBFBD> charg<72>.
</DD>
<DT><b>package provide </b><i>package </i>?<i>version</i>?</DT><DD>Cette commande est appel<65>e pour indiquer quelle version <i>version</i> du package <i>package</i> est maintenant pr<70>sente dans l'interpr<70>teur. Elle est typiquement appel<65>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<72>. Un erreur se produit si une version diff<66>rente de <i>package</i> a <20>t<EFBFBD> fournie par une pr<70>c<EFBFBD>dente commande <b>package provide</b>. Si l'argument <i>version</i> est omis, alors la commande retourne le num<75>ro de version qui est couramment fourni, ou une cha<68>ne vide si aucune commande <b>package provide</b> n'a <20>t<EFBFBD> appel<65>e pour <i>package</i> dans cet interpr<70>teur.
</DD>
<DT><b>package require </b>?<b>-exact</b>? <i>package </i>?<i>version</i>?</DT><DD>Cette commande est typiquement appel<65>e par le code Tcl qui souhaite utiliser une version particuli<6C>re d'un package. Les arguments indiquent quel package est demand<6E>, et la commande assure qu'une version convenable du package est charg<72> dans l'interpr<70>teur. Si la commande r<>ussit, elle retourne le num<75>ro de version qui est charg<72> autrement elle g<>n<EFBFBD>re une erreur. Si le switch <b>-</b> <b>exact</b> et l'argument <i>version</i> sont sp<73>cifi<66>s alors seulement la version donn<6E>e est admise. Si <b>-exact</b> est omis mais que <i>version</i> est sp<73>cifi<66>, alors les versions sup<75>rieures <20> <i>version</i> sont aussi admises tant qu'elles ont le m<>me num<75>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<EFBFBD> <20>t<EFBFBD> fournie (en appelant l commande<b> package provide</b>), alors son num<75>ro de version doit satisfaire les crit<69>res donn<6E>s par <b>-exact</b> et <i>version</i> et la commande retourne imm<6D>diatement. Autrement, la commande recherche la base de donn<6E>es d'information fournie par les pr<70>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<75>ro de version acceptable le plus <20>lev<65> est appel<65>; 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<6E>es <b>package ifneeded</b> ne contient pas de version acceptable du package et qu'une commande <b>package unknown</b> a <20>t<EFBFBD> sp<73>cifi<66>e pour l'interpr<70>teur alors cette commande est appel<65>e;<3B> 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 <20>tapes <20>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<6E>re chance&quot; <20> appeler pendant <b>package require</b> si aucune version convenable d'un package ne peut <20>tre trouv<75>e dans la base de donn<6E>es<b> package ifneeded</b>. Si l'argument <i>command</i> est fourni, il contient la premi<6D>re partie<69> d'une commande;<3B> quand la commande est appel<65>e pendant une commande<b> package require</b>, Tcl ajoute deux arguments suppl<70>mentaires donnant les nom et version du package d<>sir<69>. 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<65>e, alors Tcl ex<65>cutera la commande <b>foo bar test 2.4</b> pour charger le package. Si aucun num<75>ro de version n'est donn<6E> <20> la commande<b> package require</b>, alors l'argument version pour la commande appel<65>e sera une cha<68>ne vide. Si la commande <b>package unknown </b>est appel<65>e sans argument <i>command</i>, alors le courant script <b>package unknown </b>est renvoy<6F>, ou une cha<68>ne vide s'il n'existe pas. Si <i>command</i> est sp<73>cifi<66> comme cha<68>ne vide, alors le courant script <b>package unknown </b>est enlev<65>, s'il existe.
</DD>
<DT><b>package vcompare </b><i>version1 version2</i></DT><DD>Compare les num<75>ros de versions donn<6E>s par <i>version1</i> et <i>version2</i>. Renvoie -1 si <i>version1</i> est une version pr<70>c<EFBFBD>dente <20> <i>version2</i>, 0 si ils sont <20>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<75>ros de versions de <i>package</i> pour lequel l'information a <20>t<EFBFBD> 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 <20>crits pour <i>version2</i> fonctionneront avec <i>version1</i> (ex. <i>version1</i> est <20>gal <20> ou sup<75>rieur <20> <i>version2</i> et elles ont le m<>me num<75>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<75>ros de version consistent en un ou plusieurs nombres d<>cimaux s<>par<61>s par des points, tel que 2 ou 1.162 ou 3.1.13.1. Le premier nombre est appel<65> le num<75>ro de version majeure. Des nombres sup<75>rieurs correspondent<6E> <20> des versions ult<6C>rieures d'un package, avec le nombre le plus <20> gauche plus significatif. Par exemple, la version 2.1 est ult<6C>rieure <20> 1.3 et version 3.4.6 est ult<6C>rieure <20> 3.3.5. Les champs manquants sont <20>quivalent <20> z<>ros:<3A> la version 1.3 est la m<>me que la version 1.3.0 et 1.3.0.0, donc elle est ant<6E>rieure <20> 1.3.1 ou 1.3.0.2. Un num<75>ro de version ult<6C>rieur est suppos<6F> <20>tre compatible avec un num<75>ro de version pr<70>c<EFBFBD>dent tant que les deux versions ont le m<>me num<75>ro de version majeure. Par exemple, les scripts Tcl <20>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<75>ro de version majeure signifient des changements incompatible: si le code est <20>crit pour utiliser la version 2.1 d'un package, it n'est pas garanti qu'il fonctionne non modifi<66> avec soit la version 1.7.3 soit la version 3.1.<2E> <br>
</div><br>
<div><b>INDEX DE PACKAGES </b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">La mani<6E>re recommand<6E>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<63>er des fichiers index de package. Une fois que vous avez fait ceci, les packages seront charg<72>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<EFBFBD>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<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="144.htm"><b>Suivant</b></A></div>
</BODY></HTML>