Provided by: manpages-zh_1.5.1-1_all bug

NAME

       package - 裝載包和版本控制的設施

` SYNOPSIS
       package forget ?package package ...?
       package ifneeded package version ?script?
       package names
       package present ?-exact? package ?version?
       package provide package ?version?
       package require ?-exact? package ?version?
       package unknown ?command?
       package vcompare version1 version2
       package versions package
       package vsatisfies version1 version2
_________________________________________________________________

yz DESCRIPTION
       這茤R令維持由當前解釋器使用的可獲得的包以及如何把它抶佶到解釋器中的一-
       蚋眾瑼獐畬w。它支持每茈]的多茠岩說A並基於應用的需n安排裝載一-
       茈]的正確的版本。這茤R令還檢測並報告版本沖突。典型的,在通常的      Tcl
       稿本中只調用  package  requirepackage  provide  命令;其他命令主-
       n被系統稿本用來維護包數據庫。

       package 命令的行為由它的第一荌捊T定。允酗U列形式:

       package forget ?package package ...?
              從這虒挭擰馱之R除關於每茷定的包的所有信息,包括由       package
              ifneededpackage provide 提供的信息。

       package ifneeded package version ?script?
              這茤R令典型的只出現在系統配置稿本中,被用來設置包數據庫。Y需n一-
              荅S定的包的一荅S定的版本,它指示如果這茈]的這-
              茠岩賑O可獲得的,可通過執行           script             來把這-
              茈]來增加到解釋器上。稿本保存在一蚍畬w中,由隨後的     package
              require                                 命令使用;典型的,script
              為在包中的命令設置自動裝載(或直接調用         load         和/或
              source),接著調用package           provide             來指示這-
              茈]已經存在。在數據庫中可以有一茬璊@的包的多-
              茠岩貌澈H息。如果數據庫已經包含了對    packageversion
              的信息,則新     script     替換現存的稿本。如果省略了    script
              參數,返回包  package  的版本  version   的當前稿本,如果未對這
              packageversion 調用 package ifneeded  命令則返回一茠臟瞗C

       package names
              返回在這虒挭擰馱予狾野]的名字,為這些包提供了一茠岩(通過
              package      provide)或可獲得給它怐      package       ifneeded
              稿本。在列表中的元素的次序是任意的。

       package present ?-exact? package ?version?
              除了在包沒有裝載時它不嘗試並裝載它之外,這茤R令等價於    package
              requirepackage provide package ?version?
              調用這茤R令來指示在這虒挭擰馱丰]  package    的這茠岩   version
              現在已經存在。它典型的被作為一
              ifneeded稿本的一部分而調用一次,並在包最終裝載時被包自-
              再次調用。如果以前的  package  provide   命令已經提供的  package
              的一茪ㄕP的版本則生成一蚇欞~。如果省略了                 version
              參數,則命令返回當前提供包的版本號,如果在這虒挭擰馱允  package
              沒有調用 package provide 命令則返回一茠臟瞗C

       package require ?-exact? package ?version?
              這茤R令典型的被想n使用特定包的特定版本的                     Tcl
              稿本調用。參數指示想n-
              茈],和確保把包的合適版本裝載到解釋器中的命令。如果命令成弘鶡獢A它返回裝載的包的版本號;否則生成一-
              蚇欞~。如果同時指定了        -exact         開關和       version
              選項,則只接受給定版本。如果省略了   -exact   但指定了   version
              ,則主版本號與         version         相同但晚於        version
              的版本也可以接受。如果省略了             -exactversion二者則任何版本都可接受。如果已經提供了    package   的一-
              茠岩(通過調用                  package                  provide
              命令),則它的版本號必須滿足由-exactversion
              給出的條件並且命令立即返回。否則,命令查找由以前的package
              ifneeded                 命令提供的信息的數據庫,看是否能獲得一-
              茈i接受的版本。如果有,則調用最可接受的版本號的稿本;它必須做所有裝載這-
              茈]所必須的工作,包括調用為這茈]調用    package    provide。如果
              package         ifneeded數據庫不包含這茈]的可接受的版本並且為這-
              虒挭擰鼠定了一       package       unknown       命令則調用這-
              茤R令;當它完成的時唌ATcl 再次檢查是否現在提供了這茈]或是否有一-
              茧馴扛 package ifneeded稿本。如果所有這些步驟不能提供這茈]的一-
              茈i接受的版本,則命令返回一蚇欞~。

       package unknown ?command?
              這茤R令提供在一荂u最後一搏」(``last resort'')  命令,在  package
              require      期間如果     package    ifneeded    數據庫中沒有一-
              茈]的合適的版本可調用這茤R令。如果提供了 command 參數,它包含一-
              茤R令的第一部分,在一次 package require 命令期間調用這茤R令的時-
              唌ATcl     添加給出所須的包的名字和版本的兩茠加參數。例如,如果
              commandfoo  bar   並且後來調用了命令  package  require  test
              2.4,則 Tcl 將執行命令 foo bar test  2.4   來裝載這茈]。如果未給
              package             require              命令提供版本號,則給這-
              茬Q調用的命令的版本參數是一茠臟瞗C如果 package unknown命令但不加
              command         參數,則返回當前的        package        unknown
              稿本,如果沒有就返回一茠臟瞗C如果指定   command     為一茠臟瞗A-
              Y當前有  package unknown  稿本則刪除它。

       package vcompare version1 version2
              比較由   version1version2  給出的兩茠岩說C如果  version1version2 朽N返回 -1,如果相同則返回0,如果 version1version2
              晚則返回 1。

       package versions package
              返回  package   的所有版本號,通過  package  ifneeded  命令為它-
              抴ㄗ悀F信息。

       package vsatisfies version1 version2
              如果為 version2   寫的稿本不須更改就可為  version1    工作則返回
              1(例如,version1                 大於等於               version2
              並且有相同的主版本號),否則返回 0。

 VERSION NUMBERS
       版本號由一茤峖h茈恲I號分隔的十進制數組成,比如   2    或    1.162    或
       3.1.13.1。第一蚍s做主版本號。越大的數對應一-
       茈]的越晚的版本,最左邊的數有更大的權(significance).   例如,版本  2.1
       比  1.3 晚而版本 3.4.6 比 3.3.5 晚。遺漏的字段等價於零: 版本 1.3 於版本
       1.3.0  和  1.3.0.0   相同,所以它比   1.3.1   和   1.3.0.2   式C假定一-
       荓葧薊岩誚V上(upward)相容有相同主版本號的朽薊岩說C  例如,為一茈]的版本
       2.3     寫的     Tcl      稿本應當在版本      2.3.2、2.4、和      2.5.1
       下不須更改就能工作。主版本號的變更表示有不相容的變更:
       如果代碼是使用了一茈]的版本 2.1 寫成的,不保証在版本 1.7.3  或版本  3.1
       下不須更改就能工作。

] PACKAGE INDICES
       推薦的在  Tcl  中使用包的方式是在稿本中調用 package requirepackage
       provide                   命令,並使用過程                  pkg_mkIndex
       來建立包索引檔案。一旦你已經這樣做了,將自動的裝載包來響應      package
       require 命令。詳情請參見 pkg_mkIndex  的文件。

 SEE ALSO
       msgcat(n), packagens(n), pkgMkIndex(n)

r KEYWORDS
       package, version

[]
      Hhh

[]
       2001/08/31

m Linux manUpn:
       http://cmpp.linuxforum.net