【问题标题】:rebar cannot generate release because of gserialver.1.gz由于 gserialver.1.gz,rebar 无法生成释放
【发布时间】:2026-01-06 14:25:02
【问题描述】:

当我使用 reltool 运行 rebar generate 生成节点时,它失败并显示以下错误消息:

ERROR: Unable to generate spec: read file info /usr/lib/erlang/man/man1/gserialver.1.gz failed

为什么会发生这种情况,我该怎么办?

我正在运行 Debian Squeeze (6.0.6),如果有帮助的话。

【问题讨论】:

    标签: erlang debian rebar


    【解决方案1】:

    rebar 在从 reltool 收到错误消息时打印 Unable to generate spec;消息的其余部分直接来自 reltool。在这种情况下,reltool 试图获取 Erlang 目录中各种文件的文件信息,但由于gserialver.1.gz 是一个悬空符号链接而失败。

    您可能想知道为什么gserialver.1.gz 安装在/usr/lib/erlang 下。实际上不是,但 Debian 创建了/usr/lib/erlang/man 作为/usr/share/man 的符号链接:

    $ ls -l /usr/lib/erlang/man
    lrwxrwxrwx 1 root root 15 Nov 15 12:19 /usr/lib/erlang/man -> ../../share/man
    

    所以真正的罪魁祸首是/usr/share/man/man1/gserialver.1.gz,它是由包gcj-jre-headless安装的。有a bug report 声称该问题已得到修复;但是,如果您的盒子不是这种情况,这里有一个命令可以将文件移开并让钢筋满意:

    sudo dpkg-divert --divert /var/gserialver.1.gz --rename /usr/share/man/man1/gserialver.1.gz
    

    【讨论】: