3

我正在尝试使用非常有限的内存(220mb)在我的 ubuntu vps 上为 Haskell 编译 Snap 框架,并且在使用“cabal install snap”时我不断收到有关内存不足的错误。我试图增加交换大小,但因为它是一个 OpenVZ 盒子,所以基本上不存在交换。

我的问题是,有什么方法可以使用外部机器编译所有文件,然后让它们传输到 VPS 上的正确位置,就好像我在本地编译它一样?

或者,如果其他人对我如何能够使其工作有任何其他建议,请告诉我。

4

1 回答 1

4

正如 Thomas M. DuBuisson 所说,您只需将整个项目编译成最终的二进制文件,然后将其和所有项目文件(html、js 等)复制到服务器。因为整个项目都已编译并包含一个网络服务器,所以这些是您唯一需要的文件。

所以重申一下步骤。

  1. 获取具有相同操作系统的不同机器,可以编译框架。就我而言,我有一个本地虚拟机来做。

  2. 使用该机器编译整个 Snap 项目。

  3. 将已编译的项目(二进制文件和 Web 文件)复制到另一台机器(无法编译)。

  4. 运行二进制文件。它包括一个服务器,因此不应该有任何其他依赖项。除非您的项目使用动态库。在这种情况下,也将它们复制过来。

这是因为实际的 Snap Server 在编译时包含在 Snap Framework 应用程序中。答案实际上比我想象的要简单得多,而且我只是把它复杂化了。

于 2013-07-24T11:49:58.167 回答