我正在尝试使用非常有限的ram(220mb)在我的ubuntu vps上为Haskell编译Snap Framework,并且在使用“cabal install snap”时我一直收到有关内存不足的错误。我试图增加交换大小,但因为它是一个OpenVZ盒子,基本上没有交换存在。
我的问题是,是否有某种方法可以使用外部机器编译所有文件,然后将它们转移到VPS上的正确位置,就像我在本地编译它一样?
或者,如果其他人对如何使其工作有任何其他建议,请告诉我。
答案 0 :(得分:4)
正如Thomas M. DuBuisson所说,你只需要将整个项目编译成最终的二进制文件,并将该项目和所有项目文件(html,js等)复制到服务器上。因为整个项目都是编译的,并且包含一个Web服务器,所以这些文件是您需要的唯一文件。
重申步骤。
使用可编译框架的相同操作系统获取不同的计算机。就我而言,我有一台本地虚拟机。
使用该计算机编译整个Snap项目。
将已编译的项目(二进制文件和Web文件)复制到另一台机器(无法编译)。
运行二进制文件。它包括一个服务器,因此不应该有任何其他依赖项。除非您的项目使用动态库。在这种情况下,也可以复制那些。
这是有效的,因为编译时Snap Framework应用程序中包含实际的Snap Server。答案实际上比我想象的要简单得多,我只是过于复杂了。