I think you will not find a silver bullet. The Erlang distribution is similar to the Ruby distribution; however, Ruby has the advantage of being included in many OS installations by default.
I know ejabberd has pre-created binaries for many distributions. You can explore how they do it.
The right decision probably depends on how many "multiple platforms" you target. If it is "Ubuntu 8.04 plus Ubuntu 10.04", which is different from several Linux distributions, plus OSX, as well as FreeBSD. Usually, only open source projects support these many platforms, and ideally, you can get patches from the community. For internal projects, I saw teams standardize Linux builds and use virtualization on Mac / Windows.
But back to your question:
Creating from a source is a smart option. You can create during deployment or pre-assembly for all platforms and then deploy binary files. Both Erlang and CouchDB use Autoconf, which means that you can --prefix them to allocate allocated space (more or less stand-alone applications). This will require some trial and error, but your build script may
- Platform Dependency Configuration:
gcc , make , autoconf , all you need. apt-get on Ubuntu, yum on RHEL, Macports, all you need to get a common platform on your development and deployment system. - Compile and install the rest using the tools from step 1. Use
configure --prefix=/opt/my_software to save everything in one place. (You can completely remove it with rm -rf .)
This is a mid-level challenge - mostly trial and error. If possible, work as part of the build, for example, the Rake or Toby passenger_stack offer. Good luck
source share