将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
到一个专用位置(或多或少的独立应用程序)。 这将需要一些试验和错误,但你的构建脚本可以
gcc
, make
, autoconf
,你需要的一切。 Ubuntu上的apt-get
,RHEL上的yum
,Macports,无论您需要在开发和部署系统上获得通用平台 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