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

Deployment 打包tcl程序以便在linux中部署,deployment,tcl,Deployment,Tcl,我们正准备部署一个Tcl应用程序,但我在想怎么做时遇到了困难。目前,我正在试验tclkit和sdx.kit。我可以打包一个tcl文件并运行它,但整个应用程序的结构包含文件夹、图像以及与tcl一起工作的c文件。我有两个文件夹,里面有一堆c文件、tcl文件和其他东西。我该怎么去把整个东西包起来。除了tclkit,你们推荐什么工具?为什么?推荐你们分发应用程序的主要方式是作为tclkit。有一些替代方案(例如,TOBE,ActiveState的商业工具),但它们非常相似,因为它们都构建在Tcl的虚拟文

我们正准备部署一个Tcl应用程序,但我在想怎么做时遇到了困难。目前,我正在试验tclkit和sdx.kit。我可以打包一个tcl文件并运行它,但整个应用程序的结构包含文件夹、图像以及与tcl一起工作的c文件。我有两个文件夹,里面有一堆c文件、tcl文件和其他东西。我该怎么去把整个东西包起来。除了tclkit,你们推荐什么工具?为什么?

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

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

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



我们通常不会在堆栈溢出上推荐工具,但ActiveState Tcl开发工具包实际上使用得相当广泛。许多其他人使用
sdx
/
tclkit
。TOBE非常少见。(还有其他打包技术,但我现在不推荐它们;打包的VFS确实工作得很好。)

谢谢,我使用的是vfs,我只是不知道如何指向正确的文件夹,我有两个文件夹common和tp,在tp中我有main.tcl,我必须如何构造文件夹才能工作。我尝试将main.tcl拉出文件夹外,但我找不到其余的文件。