Last.fm 的理查德在metabrew http://www.metabrew.com/ has 将他的应用程序移植到 Erlang http://www.metabrew.com/article/rewriting-playdar-c-to-erlang-massive-savings。 riak、couchdb 等人也做过。他提到提取所需的部分,或将整个虚拟机包含到发行版中。这里的主要特点是:该程序不需要在目标机器上安装 Erlang。
所以问题是,如何一步步将 Erlang 程序打包成 Windows(以及不太重要的 Linux)可执行文件?
附:我已经看过 SAE 项目,并且在这里阅读了所有相关问题。没有人回答我的问题。
- 创建 Erlang 的便携式版本(例如使用此讨论组中的方法:Windows 上的 Erlang 通过 USB http://erlang.2086793.n4.nabble.com/Erlang-on-Windows-from-USB-td2118647.html)。本练习中最重要的部分是创建
erl.ini
具有正确路径的文件,可用于从任何所需位置启动 Erlang。
- 创建应用程序的 Erlang 版本和版本引导脚本。有关说明,请参阅有关版本的 Erlang 文档 http://www.erlang.org/doc/design_principles/release_structure.html.
- 创建 Windows 命令行脚本来启动您的应用程序。这将简单地使用启动脚本作为参数运行 Erlang(例如
erl -boot someapp
)。 Erlang 将读取erl.ini
文件以从正确的位置加载应用程序和系统库。
- Create a Windows setup application with all the relevant parts packaged in:
- Erlang 分布
- the
erl.ini
文件,其中所有路径作为要由安装应用程序填充的变量
- 应用程序的发布(所有 Beam 文件和启动脚本)
- 使用启动脚本启动应用程序的命令行脚本
从 Windows 安装程序的角度来看它应该如何工作:
- 询问用户在哪里安装应用程序(或使用程序文件中的某些默认位置)
- 将 Erlang 发行版、您的应用程序和启动脚本复制到正确的位置
- Update
erl.ini
以及使用所选位置的命令行脚本
- 创建将执行命令行脚本的图标或自动启动条目
现在,当用户单击图标或以其他方式执行命令行脚本时,他们实际上将从自定义位置运行 Erlang,这反过来又会根据 Erlang 启动脚本启动您的应用程序。这只是一个一般想法,因为命令行脚本应该检查当用户第二次启动应用程序时 Erlang 是否尚未运行,或者可能需要能够卸载它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)