当我尝试启动由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!
答案 0 :(得分:2)
我添加了
{extended_start_script, true}.
到relx.conf一个应用程序现在正常工作!
TNX。
答案 1 :(得分:0)
当OTP应用程序的.app
文件缺少必需的依赖项时,通常会发生这种情况。 relx使用.app
的内容来解析依赖关系以进入发布。
确保您的所有发布应用程序至少包含kernel
stdlib
applications
元组中的.app
和.app
。
以下是一个示例kernel
文件,其中列出了stdlib
,elk
和{application, prop, [
{description, "Prop Template Generator"},
{vsn, "0.0.1"},
{registered, []},
{applications, [kernel, stdlib, elk]},
{modules, [prop, prop_otp, prop_generator]},
{env, []}
]}.
作为依赖项:
{{1}}