首页 文章

为什么relx没有生成发布?

提问于
浏览
4

我的relx配置

{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]}]}.

在使用钢筋编译应用程序后,我从终端运行relx,以下是我得到的输出

===>启动relx构建过程... ===>从目录中解析OTP应用程序:/ home / akshat / Desktop / socket / ebin

/家庭/ akshat /桌面/插座/ DEPS

/ usr / lib中/二郎/ lib中
===>缺少梁文件hipe <<“/ usr / lib / erlang / lib / hipe-3.10.2 / ebin / hipe.beam”>> ===>从目录中解析可用的OTP版本:/ home / akshat /桌面/插座/ EBIN

/家庭/ akshat /桌面/插座/ DEPS

/ usr / lib中/二郎/ lib中
系统中未指定任何版本!

我不理解来自relx的这条消息 . 它不会为我创建发布吗?

如何安装hipe?

更新

在重新安装erlang后,我不再收到hipe错误消息 . 但是螺纹钢仍然表示系统没有指定任何版本 .

2 回答

  • 2

    有这个工作 . 重新安装erlang摆脱了第一个问题,即hipe错误消息 . relx意味着什么

    系统未指定任何版本

    是因为我没有指定要发布的应用程序 . 我的理解是,因为我只有一个应用程序,所以我不需要明确指定它 . 所以我的relx.config文件现在看起来像

    {release,{socket,"0.1.0"},[socket]}.
    {extend_start_script,true}.
    

    这有效,我现在在我的_rel文件夹中有一个版本 .

  • 0

    在我进入app目录并运行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!
    

相关问题