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