Rebar:“释放mynode使用不存在的应用程序mynode”

时间:2012-05-07 04:47:59

标签: erlang rebar

我一直在尝试使用Rebar设置一个简单的Erlang应用程序,但无法让它工作。我按照http://skeptomai.com/?p=56上的说明操作了这封信,当我运行./rebar -v generate时,我收到此错误:

==> Entering directory `/home/adam/erlang-test3/testing-rebar/apps/myapp'
WARN:  'generate' command does not apply to directory /home/adam/erlang-test3/testing-rebar/apps/myapp
==> Leaving directory `/home/adam/erlang-test3/testing-rebar/apps/myapp'
==> Entering directory `/home/adam/erlang-test3/testing-rebar/rel'
==> rel (generate)
{"init terminating in do_boot","Release mynode uses non existing application mynode"}

Crash dump was written to: erl_crash.dump
init terminating in do_boot (Release mynode uses non existing application mynode)

关注https://bitbucket.org/basho/rebar/wiki/ReleaseHandling时出现类似错误。在关注http://www.metabrew.com/article/erlang-rebar-tutorial-generating-releases-upgrades后,我得到:

{"init terminating in do_boot",{undef,[{dummy_proj,start,[]},{init,start_it,1},{init,start_em,1}]}}

如何让螺纹钢起作用?我的Erlang版本是Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]

1 个答案:

答案 0 :(得分:6)

我也开始学习erlang + rebar,我前段时间遇到了同样的问题 我想你的reltool.config文件中有问题

  1. 添加lib_dirs的路径。我有{lib_dirs, ["../../", "../deps/"]}
  2. 将您的应用添加到应用列表中。就我而言,这是 - {app, MY_APP_NAME, [{incl_cond, include}]}
  3. <强>更新 你必须重命名你的应用程序。 F.E.到erlangtest1。 我的工作是reltool.config

    {sys, [  
           {lib_dirs, ["../../"]},  
           {erts, [{mod_cond, derived}, {app_file, strip}]},  
           {app_file, strip},  
           {rel, "exemplar", "1",  
            [  
             kernel,  
             stdlib,  
             sasl,  
         erlangtest1  
            ]},  
           {rel, "start_clean", "",  
            [  
             kernel,  
             stdlib  
            ]},  
           {boot_rel, "exemplar"},  
           {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, erlangtest1, [{incl_cond, include}]}  
          ]}.  
    
    {target_dir, "exemplar"}.  
    
    {overlay, [  
               {mkdir, "log/sasl"},  
               {copy, "files/erl", "\{\{erts_vsn\}\}/bin/erl"},  
               {copy, "files/nodetool", "\{\{erts_vsn\}\}/bin/nodetool"},  
               {copy, "files/exemplar", "bin/exemplar"},  
               {copy, "files/exemplar.cmd", "bin/exemplar.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"}  
              ]}.