2013-10-18 31 views
0

我们希望在我们的产品中包含RabbitMQ,它还需要Erlang OTP。我们不希望我们的客户在安装我们的产品之前安装Erlang,并希望找到在我们自己的产品安装程序中包含Erlang的方法。在COTS产品中捆绑Erlang OTP

有什么策略可以做到这一点?我们希望支持Windows & Linux。目前我的理解是,在Windows上没有Erlang的ZIP版本。因此,这里是我的想法

  1. 包括Erlang的OTP安装程序,并当我们的产品安装程序运行
  2. 安装二郎OTP踢它关闭,压缩的安装目录,并有我们的产品安装程序解压缩它的客户机
  3. 上。 。 。 ?

感谢您的任何建议。

编辑于10月21日

我想通了。当erl.exe启动时,会为分布式erlang启动一个名称解析器守护进程(epmd.exe)。该exe文件的位置在/otp/install/path/bin/erl.ini中被硬编码。

将otp安装从C:\ Program Files复制到我选择的目录后,我必须更新erl.ini文件以反映empd进程路径中的更改。之后,我从c:\ Program Files中卸载了OTP,并能够从复制它的目录中启动erlang。

兰吉特

+0

我认为应用程序wings3d是按照您所期望的方式制作的(它不使用OTP,而是从头开始安装),您可以在这里查看源代码:[link](http:// sourceforge .net/projects/wings/files/wings/1.5.1 /) – Pascal

+0

我安装了wings32,看到安装程序简单地提取erl.exe和一堆编译后的erlang程序。我将安装erlang otp并观察它是否写入了哪些注册表项。 –

回答

0

另一个是用于发布标准的方法选择是使用rebar。这捆绑了OTP,它比复制已安装的Windows二进制文件更简洁,并且更改erl.ini或更改linux中的erl脚本。

+0

对不起,我花了这么长时间回应。到目前为止,在我的有限阅读中,rebar似乎是针对在erlang中编写的应用程序的构建和依赖管理工具。它也预设了一台机器上的Erlang OTP安装。我试图找出将Erlang OTP捆绑到COTS产品中的方式,因此它可以作为RabbitMQ的依赖项。我会再读一点关于螺纹钢的信息,看看它是否符合法案。我不会有任何自定义的Erlang代码。实质上,当我们的产品安装完成后,我想设置一些东西,以便RabbitMQ能够在Windows和Linux上解决出错的路径。 –