2014-10-09 92 views
0

我們正在準備部署一個Tcl應用程序,但我很難搞清楚如何去做。目前,我正在嘗試使用tclkit和sdx.kit。我可以打包一個tcl文件並運行它,但是整個應用程序的結構包含與tcl一起工作的文件夾,圖像和c文件。我有兩個文件夾和一堆c文件和tcl文件和其他東西。我將如何去包裹整個事情。除了tclkit,你們推薦什麼工具?爲什麼?打包一個用於在Linux中部署的tcl程序

回答

1

建議您分發應用程序的主要方式是作爲tclkit。有幾種選擇(例如,TOBE,ActiveState的商業工具),但它們非常相似,因爲它們都建立在Tcl的虛擬文件系統層之上。 (注意,這與Linux VFS的東西不一樣;這是一個單一應用程序中的VFS)。事實上,ActiveState工具重新加載的tclkit(加上一些其他的東西,如代碼混淆)。我相信TOBE使用ZIP歸檔而不是元數據庫。

使用基於VFS的解決方案的優點是,它意味着很多東西在裏面工作,特別是包括source(用於獲取另一.tcl文件)都和load(爲得到一個二進制庫)。事實上,您可以將您的應用程序,它所依賴的軟件包以及VFS中的資源(圖像等)放在一起,並確保事物可行。關於我們知道的唯一遇到的問題就是您想要在存檔中使用exec的東西(VFS掛載是過程本地的;如果您希望在子進程中看到它,則必須將副本文件複製出來)以及如果您希望使用tls軟件包加載私鑰證書(因爲基礎OpenSSL庫不會委託給Tcl來處理其出於某種原因的那部分I/O,AIUI)。

當你在構建這些東西的時候,有效地創建一個目錄(及其子目錄),其中的所有內容都可以正確顯示。然後你運行包裝器(sdx for tclkits),它爲你構建整個應用程序。將結果附加到運行時(標準tclkit),然後就可以進行測試和部署。


我們通常不會在這裏對堆棧溢出做工具推薦,但ActiveState Tcl開發包實際上被廣泛使用。許多其他人使用sdx/tclkit。 TOBE相當罕見。 (還有其他包裝技術,但我現在不推薦他們;確實包裝的VFS工作得很好。)

+0

謝謝,我使用vfs我只是無法弄清楚如何指向正確的文件夾,我有兩個文件夾common和tp,在tp裏我有main.tcl我將如何構造文件夾才能使其工作。我嘗試拔出文件夾外的main.tcl,但我無法找到其他文件。 – 2014-10-09 20:07:23