我正在做一个Rails项目,架构师要求我调查将CouchDB捆绑到应用程序中,这样它就可以由Capistrano在多个平台上部署,并由Rake管理。
我的期望是可以在各种环境中设置Erlang VM,然后使用Capistrano分发CouchDB应用程序。但是,如果没有Erlang运行时,我找不到任何下载CouchDB的选择。然而,我可以看到一个从源代码构建CouchDB的选项,我认为这是平台相关的。
我是第一次接触Erlang和CouchBD,我是不是错过了什么?有没有一种方法可以将CouchDB捆绑到Rails应用程序中并在多个平台上分发?
发布于 2010-05-04 15:15:39
我想你不会找到银弹的。分发Erlang类似于分发Ruby;但是Ruby的优点是包含在许多默认的OS安装中。
我知道ejabberd为许多发行版预建了二进制文件。你可以调查他们是如何做到这一点的。
正确的解决方案可能取决于您的目标“多平台”数量。如果它是“Ubuntu8.04加Ubuntu10.04”,那就不同于几个Linux发行版,再加上OSX,再加上FreeBSD。通常,只有开源项目才支持这些平台,理想情况下,您可以从社区获得补丁。对于内部项目,我看到团队在Linux构建的基础上进行标准化,并在Mac/Windows上使用虚拟化。
但回到你的问题上:
从源代码构建是一个合理的选择。您可以在部署时构建,或者为所有平台预先构建,然后部署二进制文件。Erlang和CouchDB都使用Autoconf,这意味着你可以将它们--prefix到一个专用的位置(或多或少的独立应用程序)。这将需要一些试验和错误,但构建脚本可以
gcc、make、autoconf,你需要的一切。Ubuntu上的apt-get,RHEL上的yum,Macports,你需要在你的开发和部署systemconfigure --prefix=/opt/my_software将所有这些都放在一个地方。(您可以使用rm -rf.)完全卸载
这是一个中等水平的挑战--主要是试验和错误。如果可能,在构建框架内工作,例如瑞克或托比的建议passenger_stack。祝好运!
发布于 2010-05-04 12:17:40
让我们来看看一些配置Rails服务的工具(比如passenger_stack)。Passenger Stack将为您的Rails应用程序下载、制作和安装辅助服务。可能是您可以改编或用作安装Erlang和CouchDB的基础。
这也有一堆替代方案。Deprec包含使用Capistrano进行配置的方法。但是基本的想法是一样的。
https://stackoverflow.com/questions/2762413
复制相似问题