6

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_dirmochijson2mochiwebtsungincl_cond{incl_cond, derived}{incl_cond, exclude}次に、リリースの一部にしたいすべてのアプリケーションを手動で含めますが、これはより優れています (どのビルドマシンでも動作します) が、手動で行う必要があるため、まだ優れていません (依存関係を把握するために relltool に依存したい) .

では、なぜこのような状況になったのでしょうか。ビルド マシンに何らかのアプリケーションが存在するだけで、上記のreltoolエラーが発生するのはなぜですか?

PS 補足として、現在のバージョンのreltool_server.erlの 907 ~ 909 行にバグが含まれていると思いますbad argument

4

1 に答える 1

1

エラー メッセージが表示されるのは、アプリケーション インクルードの {include_cond, derived} ポリシーの場合、reltool が erlang の lib ディレクトリを erlang ライブラリの正規のソースとして使用するためだと思います。Tsung は、システム ライブラリ ディレクトリにインストールされただけで汚染され、他のアプリケーションが mochijson2 モジュールをリリースの一部として含めることを許可しなくなりました。

私はこれを reltool のバグとは呼びません。むしろ、tsung 自体のインストール方法のバグです。

于 2014-04-30T21:55:48.943 に答える