Nano Hash - криптовалюты, майнинг, программирование

Erlang: ошибка запуска пакета, созданного арматурой

все.

У меня есть приложение erlang, упакованное rebar generate

вот мой reltool.config:

{sys, [
   {lib_dirs, ["../../..", "../../deps"]},
   {erts, [{mod_cond, derived}, {app_file, strip}]},
   {app_file, strip},
   {rel, "collector", "1",
    [
     kernel,
     stdlib,
     sasl,
     collector
    ]},
   {rel, "start_clean", "",
    [
     kernel,
     stdlib
    ]},
   {boot_rel, "collector"},
   {profile, embedded},
   {incl_cond, exclude},
   {excl_archive_filters, [".*"]}, %% Do not archive built libs
   {excl_sys_filters, ["^bin/.*", "^erts.*/bin/(dialyzer|typer)",
                       "^erts.*/(doc|info|include|lib|man|src)"]},
   {excl_app_filters, ["\.gitignore"]},
   {app, sasl,   [{incl_cond, include}]},
   {app, stdlib, [{incl_cond, include}]},
   {app, kernel, [{incl_cond, include}]},
   {app, lager, [{incl_cond, include}]},
   {app, goldrush, [{incl_cond, include}]},
   {app, meck, [{incl_cond, include}]},
   {app, mnesia, [{incl_cond, include}]},
   {app, collector, [{incl_cond, include}, {lib_dir, ".."}]}
  ]}.

{target_dir, "collector"}.

{overlay, [
           {mkdir, "log/sasl"},
           {copy, "files/erl", "\{\{erts_vsn\}\}/bin/erl"},
           {copy, "files/nodetool", "\{\{erts_vsn\}\}/bin/nodetool"},
           {copy, "files/collector", "bin/collector"},
           {copy, "files/collector.cmd", "bin/collector.cmd"},
           {copy, "files/start_erl.cmd", "bin/start_erl.cmd"},
           {copy, "files/install_upgrade.escript", "bin/install_upgrade.escript"},
           {copy, "files/sys.config", "releases/\{\{rel_vsn\}\}/sys.config"},
           {copy, "files/vm.args", "releases/\{\{rel_vsn\}\}/vm.args"}
          ]}.

все идет гладко при компиляции и упаковке:

но когда я запускаю приложение, оно не запускается:

./bin/collector console

вывод ошибки:

Exec: /home/crackcell/repo/github/shiyan/collector/rel/collector/erts-5.10.3/bin/erlexec    -boot /home/crackcell/repo/github/shiyan/collector/rel/collector/releases/1/collector -mode embedded -config    /home/crackcell/repo/github/shiyan/collector/rel/collector/releases/1/sys.config -args_file /home/crackcell/repo/github/shiyan/collector/rel/collector/releases/1/vm.args -- console
Root: /home/crackcell/repo/github/shiyan/collector/rel/collector
Erlang R16B02 (erts-5.10.3) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

15:34:40.547 [error] CRASH REPORT Process <0.284.0> with 0 neighbours exited with reason: call to undefined function erl_syntax:atom(module) in application_master:init/4 line 133
15:34:40.548 [info] Application lager exited with reason: call to undefined function erl_syntax:atom(module)
{"Kernel pid terminated",application_controller,"{application_start_failure,lager,   {bad_return,{{lager_app,start,[normal,[]]},{'EXIT',{undef,[{erl_syntax,atom,[module],[]},{glc_code,abstract_module_,2,[{file,\"src/glc_code.erl\"},{line,52}]},{glc_code,abstract_module,2,[{file,\"src/glc_code.erl\"},{line,39}]},{glc_code,compile,2,[{file,\"src/glc_code.erl\"},{line,29}]},{glc,compile,2,[{file,\"src/glc.erl\"},{line,171}]},{lager_util,trace_filter,2,[{file,\"src/lager_util.erl\"},{line,366}]},{lager_app,start,2,[{file,\"src/lager_app.erl\"},{line,116}]},{application_master,start_it_old,4,[{file,\"application_master.erl\"},{line,269}]}]}}}}}"}

Crash dump was written to: erl_crash.dump

PID ядра завершен (application_controller) ({application_start_failure,lager,{bad_return,{{lager_app,start,[normal,[]]},{'EXIT',{undef,[{erl_syntax,atom,[module],[]} ,{glc_code,абстрактный_модуль_,2

похоже, что основной причиной этого является {'EXIT',{undef,[{erl_syntax,atom,[module],[]}, но я не знаю, почему он не определен (я могу использовать его в консоли вручную) или как его решить.

Кстати, я использую Erlang R16B02.

Кто-нибудь может мне помочь? благодаря.

05.10.2013

Ответы:


1

erl_syntax является частью синтаксиса_tools (а не stdlib, где доступен erl_parse). Вам нужно явно добавить это в конфигурацию арматуры, чтобы включить ее в выпуск коллектора.

{app, syntax_tools, [{incl_cond, include}]},

Обратите внимание, что все, что указано в файле rebar.config, копируется в папку релиза, а установленный релиз Erlang не упоминается. Следовательно, многие инструменты должны быть добавлены явно.

05.10.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..