0

从源代码构建和安装(全局)新版本的 Tcl 时,除了重新链接 /usr/local/bin/tclsh 并希望使用新版本之外,还有什么特别的事情需要考虑吗?

我知道解释器可执行文件 tclsh 和 wish 以不同的名称安装,但是包含和库文件呢?当我构建eggdrop时,它会链接到最新版本吗?手册页怎么样 - 旧的被新的覆盖了吗?

4

2 回答 2

1

这种情况的常用方法是配置构建,使其安装在单个目录下(Windows 方法),例如,在/opt/tcltk/8.6. 然后保证您不会与其他版本发生冲突,并且卸载是rm -rf在该单个目录上运行的问题。但是,这种方法有其缺点:

  • 您必须在新层次结构下链接(一些)已安装的第三方 Tcl 库。这是因为 Tcl 派生了一组路径以从它自己的位置查找库。
  • /opt/tcltk/8.6/bin不会列在$PATH.

对于某些操作系统,另一种(可能更明智的)方法是进行“反向移植”,即获取所需 Tcl/Tk 版本的源包,并使其为已安装的操作系统版本构建;然后以正常方式安装生成的软件包。在可以共同安装各种版本的 Tcl/Tk 的系统上(例如,Debian 及其衍生产品),这可能提供了最明智的解决方案。

至于后一种情况下的手册页,在 Debian 中,它们最终被打包在一个单独的包中,不需要安装;所以您只需选择一个可用的文档包并安装它。

于 2013-01-22T17:27:00.870 回答
0

就存在多个版本而言,这是很正常的事情(通过在构建时设置--prefix选项来做到这一点configure)并且已经有很长一段时间了。如果可以的话,您可能希望避免使用单个版本的多个补丁级别,但是同时安装 8.4、8.5 和 8.6 是完全可以的。您也希望在不同的目录中进行不同的安装,并且将未版本化的tclsh名称链接到您通常想要的名称是正确的(尽管我只是使用版本化的可执行文件名称)。

使联机帮助页良好共存的唯一方法是将它们安装在单独的目录树中,并更新 MANPATH 环境变量以指向正确的环境变量(除非您有一个man可执行文件可以直接获取联机帮助页的路径——有些人会这样做,有些人不这样做 - 这几乎不方便)。如果您能忍受在线,我们在http://www.tcl.tk/man/上提供了文档的官方 HTML 版本,其中包括所有重要版本,可以追溯到很长一段时间。

于 2013-01-22T17:28:54.373 回答