当我试图启动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
的内容来解析要进入发布的依赖关系。
确保您的所有发布应用程序至少在.app
的applications
元组中包含kernel
和stdlib
。
下面是一个示例.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, []}
]}.