【问题标题】:Reltool error "potentially included by two different applications"Reltool 错误“可能包含在两个不同的应用程序中”
【发布时间】:2012-06-12 02:36:58
【问题描述】:

我想知道reltool 的以下行为背后的原因是什么:

如果我的reltool.config 使用默认的mod_condincl_cond 选项,并且如果我包含的一个应用程序有一个模块,该模块也恰好是我机器上安装的某些应用程序的一部分,但未包含在我的版本中@987654322 @返回:

{error, "Module <some_module> potentially included by two different applications: <system_app> and <my_app>."}

这很烦人,因为<system_app> 不是我发布的一部分(直接或间接)。 reltool 真的不能确定<system_app> 不会包含在我的版本中吗?这就是"potentially included"的原因吗?

无论如何,为了生成我的版本,我必须通过{app, <system_app> [{incl_cond, exclude}]} 明确排除<system_app>,这很难看,因为这个<system_app> 恰好安装在Erlang/OTP 系统的root_dir 中我进行构建的机器(它可能没有安装在其他构建机器上)并且与我的发布无关。实际示例:tsung-1.4.3 包含mochijson2 模块,因此我在构建自己的版本时遇到问题,该版本应在安装了tsung 的机器上包含mochiweb 应用程序(但不在其他机器上)。 另一种选择是将顶级incl_cond{incl_cond, derived} 更改为{incl_cond, exclude},然后手动包含我想成为我的发布的一部分的所有应用程序,这更好(适用于任何构建机器)但仍然不是很好因为它必须手动完成(我想依靠 relltool 来找出依赖关系)。

所以问题是为什么我们会遇到这样的情况?为什么仅仅在构建机器上存在一些应用程序就会导致上述reltool 错误?

PS 作为旁注,我认为当前版本的reltool_server.erl 的第 907-909 行包含一个错误:如果调用它,它将生成 bad argument

【问题讨论】:

    标签: erlang reltool


    【解决方案1】:

    我相信您会看到错误消息,因为在应用程序包含的 {include_cond, derived} 策略的情况下,reltool 使用 erlang 的 lib 目录作为 erlang 库的规范源。 Tsung 仅仅因为它安装到系统库目录而污染了它,现在不允许任何其他应用程序将 mochijson2 模块作为发布的一部分。

    我不会称其为 reltool 中的错误,而是 tsung 自身安装方式中的错误。

    【讨论】:

      猜你喜欢
      • 2014-05-03
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多