将CouchDB作为Rails应用程序的一部分进行分发?

我正在开发一个Rails项目,并且架构师要求我调查将CouchDB捆绑到应用程序中,以便它可以由Capistrano跨多个平台部署并由Rake管理。

我的期望是,我可以在各种环境中设置Erlang虚拟机,然后使用Capistrano分发CouchDB应用程序。 但是,我找不到任何选项来在没有Erlang运行时的情况下下载CouchDB。 不过,我可以看到一个选择,从源代码构建CouchDB,我认为它是依赖于平台的。

我是Erlang和CouchBD的新手,我错过了什么? 有没有办法将CouchDB绑定到Rails应用程序并将其分布到多个平台上?


我想你不会找到一颗银弹。 分发Erlang类似于分发Ruby; 但是Ruby具有被包含在许多默认操作系统安装中的优势。

我知道ejabberd为许多发行版预先创建了二进制文件。 你可以调查他们是如何做到的。

正确的解决方案可能取决于您定位的“多个平台”数量。 如果它是“Ubuntu 8.04加上Ubuntu 10.04”,与几个Linux发行版不同,再加上OSX,再加上FreeBSD。 通常只有开源项目支持这些平台,理想情况下你可以从社区获得补丁。 对于内部项目,我看到团队在Linux版本上标准化并在Mac / Windows上使用虚拟化。

但回到你的问题:

从源头建设是一个合理的选择。 您可以在部署时构建,或为所有平台预先构建,然后部署二进制文件。 Erlang和CouchDB都使用Autoconf,这意味着您可以将它们--prefix到一个专用位置(或多或少的独立应用程序)。 这将需要一些试验和错误,但你的构建脚本可以

  • 平台特定的依赖设置: gccmakeautoconf ,你需要的一切。 Ubuntu上的apt-get ,RHEL上的yum ,Macports,无论您需要在开发和部署系统上获得通用平台
  • 使用步骤1中的工具编译并安装其余部分。使用configure --prefix=/opt/my_software将它保留在一个位置。 (您可以使用rm -rf完全卸载。)
  • 这是一个中等水平的挑战 - 主要是试验和错误。 如果可能,在Rake或Toby的建议passenger_stack等构建框架中工作。 祝你好运!


    查看一些供应Rails服务的工具(如passenger_stack)。 Passenger Stack会为您的Rails应用下载,制作和安装辅助服务...可能是您可以调整或用作安装Erlang和CouchDB的基础。

    还有一堆替代品。 Deprec包含用Capistrano进行配置的配方。 基本的想法是相同的。

    链接地址: http://www.djcxy.com/p/14243.html

    上一篇: Distribute CouchDB as part of a Rails app?

    下一篇: How to simulate a webcam device