启动erlang应用程序(relx)发布时出错



当我试图启动relx准备的erlang版本时,它崩溃了,原因是:

{"init terminating in do_boot",{badarg,[{erl_prim_loader,check_file_result,3,[]},{init,get_boot,1,[]},{init,get_boot,2,[]},{init,do_boot,3,[]}]}}

目录列表:

    ├── bin
    ├── lib
    │   ├── asn1-2.0.2
    │   │   ├── ebin
    │   │   ├── priv
    │   │   └── src
    │   ├── bear-0.8.1
    │   │   ├── ebin
    │   │   └── src
    │   ├── cache-1.0.0
    │   │   ├── ebin
    │   │   ├── priv
    │   │   └── src
    │   ├── cberl-1
    │   │   ├── c_src
    │   │   ├── ebin
    │   │   ├── include
    │   │   ├── priv
    │   │   └── src
    │   ├── compiler-4.9.2
    │   │   ├── ebin
    │   │   └── src
    │   ├── cowboy-0.8.6
    │   │   ├── ebin
    │   │   └── src
....................
    │   ├── crypto-3.0
    │   │   ├── ebin
    │   │   ├── priv
    │   │   │   └── lib
    │   │   └── src
    └── releases
        └── 0.5.2

所有的图书馆都在自己的地方。

我尝试用命令erl -env ERL_LIBS ../libs -erlconto启动应用程序,它成功启动了。

看起来,这个问题在启动文件中,但我不知道如何处理这个问题。

有什么技巧或解决方法吗。

Tnx!

我添加了

{extended_start_script, true}.

relx.conf应用程序现在可以工作了!

Tnx。

当OTP应用程序的.app文件缺少所需的依赖项时,通常会发生这种情况。relx使用.app的内容来解析要进入发布的依赖关系。

确保您的所有发布应用程序至少在.appapplications元组中包含kernelstdlib

下面是一个示例.app文件,将kernelstdlibelk列为依赖项:

{application, prop, [
  {description, "Prop Template Generator"},
  {vsn, "0.0.1"},
  {registered, []},
  {applications, [kernel, stdlib, elk]},
  {modules, [prop, prop_otp, prop_generator]},
  {env, []}
]}.

最新更新