Существует ли команда Erlang для чтения файлов BEAM из удаленного хранилища? - PullRequest
0 голосов
/ 23 февраля 2010

Мне нужно распространить некоторый код Erlang, который является закрытым исходным кодом для клиента. Я думаю, что самым простым способом было бы просто дать команду оболочки Erlang, чтобы получить код с удаленного хоста. Удаленным хостом будет виртуальная машина Erlang, которая не использует тот же секретный файл cookie, что и клиент. Как я могу это сделать?

Например, если я нахожусь в оболочке Erlang, я хотел бы что-то, что позволяет мне делать:

load_lib(mysql).
load_lib(postgres).

: а затем Erlang загрузит и установит файлы BEAM и позволит мне использовать модули mysql: и postgres: Erlang с этого момента на

Обновление: 1) Мне предложили использовать tarballs, поэтому я думаю, что процедура в этом случае будет выглядеть примерно так:

Find Erlang lib directory and CD to it
wget tarball to the current directory

Не так хорошо, как установка gem, но это лучшее, что может сделать Эрланг

Ответы [ 2 ]

1 голос
/ 23 февраля 2010

Вы не можете сделать это между двумя ненадежными узлами Erlang. Этот секретный файл cookie является единственной мерой безопасности, существующей между узлами. Вам нужно будет развернуть свой собственный протокол, даже если это просто прямой HTTP.

С этого момента вы можете либо отправить файл BEAM по сети, либо просто отправить двоичные данные, содержащиеся в нем. Затем вы можете загрузить модуль, вызвав code:load_file/1 для BEAM или code:load_binary/3 для двоичных данных.

Хотя все это звучит довольно хрупко для меня. Хранилище, как предложено Роберто Алои, вероятно, будет лучшей идеей.

1 голос
/ 23 февраля 2010

Не могли бы вы просто загрузить свой код в какой-нибудь репозиторий и предоставить доступ клиенту? Вы также можете предоставить скрипт для автоматической загрузки новых версий кода без остановки работающей системы ... Или я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...