Я думаю, вы не найдете серебряную пулю. Распространение Erlang похоже на распространение Ruby; однако преимущество Ruby заключается в том, что он включен во многие установки ОС по умолчанию.
Я знаю, ejabberd имеет встроенные двоичные файлы для многих дистрибутивов. Вы можете исследовать, как они это делают.
Правильное решение, вероятно, зависит от того, сколько "нескольких платформ" вы нацеливаете. Если это «Ubuntu 8.04 плюс Ubuntu 10.04», это отличается от нескольких дистрибутивов Linux, плюс OSX, плюс FreeBSD. Обычно только те проекты с открытым исходным кодом поддерживают эти многочисленные платформы, и в идеале вы можете получить исправления от сообщества. Что касается внутренних проектов, я видел, как команды стандартизируют сборку Linux и используют виртуализацию на Mac / Windows.
Но вернемся к вашему вопросу:
Строительство из источника является разумным вариантом. Вы можете выполнить сборку при развертывании или предварительную сборку для всех платформ, а затем развернуть двоичные файлы. И Erlang, и CouchDB используют Autoconf, что означает, что вы можете --prefix
отправить их в выделенное место (более или менее автономные приложения). Это займет несколько проб и ошибок, но ваш скрипт сборки может
- Настройка зависимости для платформы:
gcc
, make
, autoconf
, все, что вам нужно. apt-get
в Ubuntu, yum
в RHEL, Macports, все, что вам нужно, чтобы получить общую платформу в вашей системе разработки и развертывания
- Скомпилируйте и установите остальные, используя инструменты из шага 1. Используйте
configure --prefix=/opt/my_software
, чтобы хранить все это в одном месте. (Вы можете полностью удалить с помощью rm -rf
.)
Это задача среднего уровня - в основном, методом проб и ошибок. Если возможно, работайте в рамках сборки, такой как Rake или предложение Тоби passenger_stack
. Удачи!