打包一个tcl程序以便在linux中部署



我们正准备部署Tcl应用程序,但我很难弄清楚如何部署。目前,我正在试用tclkit和sdx.kit。我可以打包一个Tcl文件并运行它,但整个应用程序的结构包含与Tcl协同工作的文件夹、映像和c文件。我有两个文件夹,里面有一堆c文件、tcl文件和其他东西。我该怎么去把整件东西包起来。除了tclkit,你们还推荐什么工具?为什么?

建议您分发应用程序的主要方式是作为tclkit。有一些替代方案(例如,TOBE,ActiveState的商业工具),但它们非常相似,因为它们都构建在Tcl的虚拟文件系统层之上。(注意。这与Linux VFS的东西不同;这是单个应用程序中的VFS。)事实上,ActiveState工具实际上是一个重新标记的tclkit(加上一些其他东西,如代码模糊)。我相信TOBE使用ZIP档案而不是元工具包数据库。

使用基于VFS的解决方案的优势在于,这意味着很多东西在内部工作,特别是包括source(用于在中获取另一个.tcl文件)和load(用于获取二进制库)。事实上,您可以将您的应用程序、它所依赖的包以及资源(图像等)放入VFS中,并确保一切正常。我们所知道的唯一遇到实际问题的是,您想在哪里exec归档中的某个东西(VFS装载是进程本地的;如果您想在子进程中看到它,您必须将子文件复制出来),以及如果您想用tls包加载私钥证书(由于某种原因,底层OpenSSL库没有委托Tcl处理其I/O的这一部分,即AIUI)。

当您构建这些东西时,实际上您创建了一个目录(及其子目录),其中所有内容都安排正确。然后运行打包程序(用于tclkits的sdx),它将为您构建整个应用程序。将结果附加到运行时(标准tclkit),就可以进行测试和部署了。


我们通常不会在Stack Overflow上推荐工具,但ActiveState Tcl开发工具包实际上使用得相当广泛。许多其他人使用sdx/tclkit。TOBE要难得多。(还有其他打包技术,但我现在不推荐它们;打包的VFS确实效果很好。)

最新更新