我想你不会找到一颗银弹。分发Erlang类似于分发Ruby;但是Ruby具有被包含在许多默认操作系统安装中的优势。
我知道ejabberd已为许多发行版预先构建了二进制文件。你可以调查他们是如何做到的。
正确的解决方案可能取决于您定位的“多个平台”数量。如果它是“Ubuntu 8.04加上Ubuntu 10.04”,与几个Linux发行版不同,再加上OSX,再加上FreeBSD。通常只有开源项目支持这些平台,理想情况下你可以从社区获得补丁。对于内部项目,我看到团队在Linux版本上标准化并在Mac/Windows上使用虚拟化。
但是,回到你的问题:
从源
大厦是一个合理的选择。您可以在部署时构建,或为所有平台预先构建,然后部署二进制文件。 Erlang和CouchDB都使用Autoconf,这意味着您可以将它们移动到专门的位置(或多或少的独立应用程序)。这将需要一些试验和错误,但你的构建脚本可以
- 特定于平台的依赖性设置:
gcc
,make
,autoconf
,你需要的一切。 apt-get
在RHEL,Macports上,yum
,无论您需要在开发和部署系统上获得公共平台
- 使用步骤1中的工具编译并安装其余部分。使用
configure --prefix=/opt/my_software
将它保留在一个位置。 (您可以完全卸载rm -rf
。)
这是一个中等级别的挑战 - 主要是试验和错误。如果可能,在Rake或Toby的建议passenger_stack
等构建框架内工作。祝你好运!
很棒的回答。我总结了这一点并将其呈现给我们的建筑师。最后,他决定单独设置每个环境会更简单。 供参考。环境是RHEL,Ubuntu和OSX。 此外,每个开发人员都可以控制其开发环境,因此有多个开发人员可以分别管理它们。 – AaronThomson 2010-05-04 23:38:30