Уменьшение размера сгенерированных арматурой пакетов обновлений - PullRequest
2 голосов
/ 14 сентября 2011

В настоящее время я учусь делать выпуски erlang и выпускать обновления с помощью арматуры.Благодаря этому руководству я уже смог успешно создавать выпуски и обновления, но во время этого возникла одна проблема.

В проекте, над которым я работаю, важно, чтобы выпускОбновления настолько малы, насколько это возможно, поскольку они загружаются через ненадежное и медленное соединение во встроенное устройство (например, beagleboard)

К сожалению, архивы tar.gz, созданные с помощью rebar, всегда содержат полный выпуск со всеми приложениями.Мне было интересно, есть ли способ сделать обновление рабочей версии, которое будет содержать только новые приложения и обновленные приложения для уменьшения размера архива.Может быть, можно настроить reltool для этого?

Спасибо за помощь.

1 Ответ

0 голосов
/ 15 сентября 2011

Я написал небольшое руководство по этому вопросу в виде части главы, посвященной выпуску некоторых книг Эрланга :

Вот один из представленных файлов релизов, чтобы сделать вещи меньше:

{sys, [
 {lib_dirs, ["/home/ferd/code/learn-you-some-erlang/release/"]},
 {erts, [{mod_cond, derived},
         {app_file, strip}]},
 {rel, "erlcount", "1.0.0", [kernel, stdlib, ppool, erlcount]},
 {boot_rel, "erlcount"},
 {relocatable, true},
 {profile, embedded}, 
 {app_file, strip},
 {debug_info, strip},
 {incl_cond, exclude},
 {excl_app_filters, ["_tests.beam$"]},
 {app, stdlib, [{mod_cond, derived}, {incl_cond, include}]},
 {app, kernel, [{incl_cond, include}]},
 {app, ppool, [{vsn, "1.0.0"}, {incl_cond, include}]},
 {app, erlcount, [{vsn, "1.0.0"}, {incl_cond, include}]}
]}.

Это удаляет отладочную информацию, делает файлы приложений как можно меньшего размера, удаляет тестовые файлы, исключает столько приложений, сколько возможно и т. Д. Обратите внимание, что вам нужно будет по крайней мере включить SASL и сохранить debug_info, если вы хотите, чтобы люди могли запускать обновления кода вашего материала в реальном времени.

В целом, сама ERTS занимает 18,5 МБ. Это займет большую часть вашего пространства, если вы воспользуетесь приведенными выше правилами, поэтому вам нужно проверить, можете ли вы удалить некоторые исполняемые файлы (не-SMP Erlang и т. Д.) Из списка.

...