reltoolの次の動作の背後にある理由は何だろうと思っていました。
reltool.config
デフォルトmod_cond
とオプションを使用し、incl_cond
含まれているアプリケーションの 1 つにモジュールがあり、そのモジュールがたまたまマシンにインストールされているが、リリースには含まれていないアプリケーションの一部である場合、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"
ですか?
とにかく、私のリリースを生成するために、ビルドを行うマシンの Erlang/OTP システムにたまたまインストールされているため、醜い<system_app>
viaを明示的に除外する必要があります (他のシステムにはインストールされていない可能性があります)。私のリリースとは何の関係もありません。実際の例: tsung-1.4.3にはモジュールが含まれているため、インストール済みのマシン (他のマシンではなく)にアプリを含める必要がある独自のリリースをビルドする際に問題があります。別のオプションは、トップレベルをからに変更することです{app, <system_app> [{incl_cond, exclude}]}
<system_app>
root_dir
mochijson2
mochiweb
tsung
incl_cond
{incl_cond, derived}
{incl_cond, exclude}
次に、リリースの一部にしたいすべてのアプリケーションを手動で含めますが、これはより優れています (どのビルドマシンでも動作します) が、手動で行う必要があるため、まだ優れていません (依存関係を把握するために relltool に依存したい) .
では、なぜこのような状況になったのでしょうか。ビルド マシンに何らかのアプリケーションが存在するだけで、上記のreltool
エラーが発生するのはなぜですか?
PS 補足として、現在のバージョンのreltool_server.erlの 907 ~ 909 行にバグが含まれていると思いますbad argument
。