gpt4 book ai didi

erlang - Reltool错误 "potentially included by two different applications"

转载 作者:行者123 更新时间:2023-12-04 16:00:14 25 4
gpt4 key购买 nike

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

如果我的 reltool.config使用默认 mod_condincl_cond选项,如果我包含的应用程序之一有一个模块,该模块也恰好是我机器上安装的某些应用程序的一部分,但未包含在我的版本中 reltool:get_target_spec/1返回:
{error, "Module <some_module> potentially included by two different applications: <system_app> and <my_app>."}
这很烦人,因为 <system_app>不是我发布的一部分(直接或间接)。 reltool 实际上无法弄清楚 <system_app>不会包含在我的发布中?这就是它的原因"potentially included" ?

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

那么问题来了,为什么我们会出现这样的情况?为什么只是在构建机器上存在一些应用程序会导致上述 reltool错误?

PS 作为旁注,我相信 reltool_server.erl 当前版本的第 907-909 行包含一个错误:它将生成 bad argument是否应该调用它。

最佳答案

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

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

关于erlang - Reltool错误 "potentially included by two different applications",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10942002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com