Erlang 为什么relx不生成发布?
我的relx配置Erlang 为什么relx不生成发布?,erlang,rebar,relx,Erlang,Rebar,Relx,我的relx配置 {release,{socket,"0.1.0"}}. {extend_start_script,true}. 我的.app文件 {application,socket, [{description,[]}, {vsn,"1"}, {registered,[]}, {applications,[kernel,stdlib,cowboy]},
{release,{socket,"0.1.0"}}.
{extend_start_script,true}.
我的.app文件
{application,socket,
[{description,[]},
{vsn,"1"},
{registered,[]},
{applications,[kernel,stdlib,cowboy]},
{mod,{socket,[]}},
{env,[{http_port,8080}]},
{modules,[socket_app,socket_socket_handler,socket_sup]}]}.
使用rebar编译应用程序后,我从终端运行relx,下面是我得到的输出
=>正在启动relx生成过程
=>从目录解析OTP应用程序:
/home/akshat/Desktop/socket/ebin
/home/akshat/Desktop/socket/deps
/usr/lib/erlang/lib
/home/akshat/Desktop/socket/ebin
/home/akshat/Desktop/socket/deps
/usr/lib/erlang/lib
=>缺少梁文件hipe
=>解析目录中的可用OTP版本:
/home/akshat/Desktop/socket/ebin
/home/akshat/Desktop/socket/deps
/usr/lib/erlang/lib
/home/akshat/Desktop/socket/ebin
/home/akshat/Desktop/socket/deps
/usr/lib/erlang/lib
系统中未指定任何版本
我不明白这个来自relx的消息。它不是为我创建了发行版吗
如何安装hipe
更新
在重新安装erlang之后,我不再收到hipe错误消息。但力霸仍然表示,该系统尚未指定任何版本。使其正常工作。重新安装erlang解决了第一个问题,即hipe错误消息。雷克斯的意思是什么 系统未指定任何版本 是因为我没有指定要组装以发布的应用程序。我的理解是,因为我只有一个应用程序,所以不需要显式地指定它。所以我的relx.config文件现在看起来像
{release,{socket,"0.1.0"},[socket]}.
{extend_start_script,true}.
这是可行的,我现在在我的_rel文件夹中有了一个版本 在我进入rebar3项目的根目录并运行
rebar3 compile
,rebar3 release
命令之前,我遇到了完全相同的问题。它工作得很好
$ > ls
enter code here
chatx rebar3
$ > cd chatx/
$ > rebar3 compile
===> Verifying dependencies...
===> Compiling chatx
$ > rebar3 release
===> Verifying dependencies...
===> Compiling chatx
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/Users/studio/erlang/chatx/_build/default/lib
/Users/studio/erlang/chatx/apps
/Users/studio/kerl/20.2/lib
===> Resolved chatx-0.1.0
===> Dev mode enabled, release will be symlinked
===> release successfully created!
正在获取
系统中未指定任何版本代码>运行rebar3版本时出错
除了rebar3项目根目录之外的任何其他位置。