You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于rebar3的Relup实现Erlang应用升级时遇--relname缺失错误

解决rebar3 relup报错"Option --relname is missing"

问题原因

rebar3 relup 生成升级包时,必须明确知道发布名称(relname)以及要升级的旧版本号,要么通过命令行参数传递,要么在rebar.config中预先配置。你的情况是未指定这两个必要信息中的发布名称。

解决方案

方法1:命令行直接指定参数

从输出里的relapp-1.0.12可确认你的发布名称是relapp,假设要从旧版本1.0.11升级到当前的1.0.12,执行以下命令:

rebar3 relup --relname relapp --upfrom relapp-1.0.11
  • --relname:指定发布名称(即生成的release目录名)
  • --upfrom:指定要升级的旧版本完整名称(格式为发布名称-版本号)

方法2:在rebar.config中配置relx参数

如果不想每次命令行输入参数,可在项目根目录的rebar.config里添加relx配置,提前定义发布信息和升级来源:

{relx, [
    {release, {relapp, "1.0.12"}, [relapp, sasl]}, % 定义当前发布的名称、版本和包含的应用
    {dev_mode, false},
    {include_erts, true},
    {extended_start_script, true},
    {upfrom, "1.0.11"} % 指定默认升级的旧版本号
]}.

配置完成后,直接运行:

rebar3 relup

即可自动读取配置中的发布名称和旧版本信息,生成升级包。

验证

执行命令后,若未报错,会在_build/default/rel/relapp目录下生成relup文件,这就是升级所需的脚本。

内容的提问来源于stack exchange,提问作者孙海城

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:35:13