在tcl中使用特定版本的http

问题描述

我目前正在Ubuntu 20.04上进行开发。我正在使用http版本2.9.1附带的tcl的当前最新版本。但是我需要使用特定版本的http软件包,即2.8.9。当我使用指令时:

package require http -exact 2.8.9

我收到一个错误,它找不到软件包http 2.8.9。有什么方法可以下载特定的http软件包,然后在我的脚本中使用它。还是有办法将tcl降级到较早的版本。或下载早期版本的tcl,然后指定要使用的版本。

解决方法

您可以从github镜像中获取它:https://github.com/tcltk/tcl/blob/core-8-6-6/library/http/http.tcl

  1. 将该版本另存为http.tcl在目录中,例如/path/to/my/http
  2. cd /path/to/my/http
  3. echo "pkg_mkIndex ." | tclsh

然后,在您的tcl脚本中:

lappend auto_path /path/to/my/http
package require -exact http 2.8.9

您还可以lappend auto_path /path/to/my -程序包加载器在$ auto_path中的目录以及这些目录的直接子目录中查找pkgIndex.tcl文件。使用/path/to/my可以使您在该父目录下拥有其他自定义包目录