17

来自metabrew的 Last.fm 的 Richard已将他的应用程序移植到 Erlang。它也是由riak、couchdb 和其他人完成的。他提到提取所需的部分,或者将整个 VM 包含到分发中。这里的主要特点是:该程序不需要在目标机器上安装 Erlang。

所以问题是,你如何一步一步地将 Erlang 程序打包成一个 windows(以及不太重要的 linux)可执行文件?

PS 我看过 SAE 项目,并且在这里阅读了所有相关问题。没有人回答我的问题。

4

1 回答 1

8
  1. 创建 Erlang 的可移植版本(例如,使用此讨论组中的方法:Erlang on Windows from USB)。本练习中最重要的部分是创建erl.ini具有正确路径的文件,该文件可用于从任何所需位置启动 Erlang。
  2. 创建应用程序的 Erlang 版本和发布启动脚本。有关说明,请参阅有关发布的 Erlang 文档
  3. 创建一个 Windows 命令行脚本来启动您的应用程序。这将简单地以您的引导脚本作为参数运行 Erlang(例如erl -boot someapp)。Erlang 将读取该erl.ini文件以从正确的位置加载您的应用程序和系统库。
  4. 创建一个包含所有相关部件的 Windows 安装应用程序:
    • Erlang 分布
    • 包含所有路径的erl.ini文件作为要由安装应用程序填写的变量
    • 应用程序的发布(所有的梁文件和启动脚本)
    • 使用启动脚本启动应用程序的命令行脚本

从 Windows 安装程序的角度来看它应该如何工作:

  • 询问用户在哪里安装应用程序(或使用 Program Files 中的某个默认位置)
  • 将 Erlang 发行版、您的应用程序和启动脚本复制到正确的位置
  • 更新erl.ini和命令行脚本以使用所选位置
  • 创建将执行命令行脚本的图标或自动启动条目

现在,当用户单击图标或以另一种方式执行命令行脚本时,他们实际上将从自定义位置运行 Erlang,这反过来将根据 Erlang 启动脚本启动您的应用程序。这只是一个普遍的想法,因为命令行脚本应该例如在用户第二次启动应用程序时检查 Erlang 是否尚未运行,或者它可能需要能够卸载它。

于 2012-08-15T11:54:34.297 回答