Как вы компилируете программу Erlang в автономный исполняемый файл Windows?

Ричард из Last.fm на metabrew портировал свои приложения в Erlang. Это также было сделано riak, couchdb и другими. Он упоминает извлечение необходимых частей или включение всей ВМ в дистрибутив. Главной особенностью здесь является то, что программа не требует установки Erlang на целевой машине.

Итак, вопрос: Как вы, шаг за шагом, упаковываете программу Erlang в исполняемый файл Windows (и, что менее важно, linux)?

P.S. Я видел проект SAE, и здесь я прочитал все соответствующие вопросы. Никто не отвечает на мой вопрос.

Ответы

Ответ 1

  • Создайте портативную версию Erlang (например, используя метод из этой группы: Erlang на Windows с USB). Наиболее важной частью этого упражнения является создание файла erl.ini с правильными путями, которые могут быть использованы для запуска Erlang из любого желаемого местоположения.
  • Создайте выпуск приложения Erlang и версию выпуска script. Инструкции см. В документации Erlang о выпусках.
  • Создайте командную строку Windows script для загрузки приложения. Это просто запустит Erlang с вашей загрузкой script в качестве параметра (например, erl -boot someapp). Erlang прочитает файл erl.ini для загрузки вашего приложения и системных библиотек из правильных местоположений.
  • Создайте приложение настройки Windows со всеми соответствующими частями, упакованными в:
    • распределение Эрланга
    • файл erl.ini со всеми путями в качестве переменных, которые должны быть заполнены приложением настройки
    • выпуск вашего приложения (все файлы луча и загрузка script)
    • Командная строка script для загрузки приложения с помощью загрузки script

Как это должно работать с точки зрения установщика Windows:

  • Спросите пользователя, где установить приложение (или используйте определенное по умолчанию местоположение в Program Files)
  • Скопируйте дистрибутив Erlang, ваше приложение и загрузите script в нужное место.
  • Обновить erl.ini и в командной строке script использовать выбранное местоположение
  • Создайте значки или записи автозапуска, которые будут выполнять командную строку script

Теперь, когда пользователь щелкает значок или выполняет командную строку script по-другому, они фактически запустит Erlang из настраиваемого местоположения, которое, в свою очередь, загрузит ваше приложение в соответствии с загрузкой Erlang script. Это просто общая идея, потому что в командной строке script следует, например, проверить, не запущен ли Erlang, когда пользователь запускает приложение во второй раз, или, возможно, потребуется удалить его.