問題タブ [reltool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - Reltool エラー「2 つの異なるアプリケーションに含まれている可能性があります」
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
。
erlang - Reltoolはライブラリを起動しようとします
Reltool でリリースをビルドしています。ブートファイルで起動しようとすると、エラーが発生します:
しかし、z_validate はライブラリであり、開始したくありません。ブートスクリプトから除外するにはどうすればよいですか?
erlang - 鉄筋アプリケーションを異なる名前で 2 回以上起動する方法は?
ピンポンと呼ばれる鉄筋アプリケーションがあります。rebar generate
を使用してパッケージ化されたアプリケーションを起動した後./rel/pingpong/bin/pingpong start
。問題は、erlang VM が常に名前を持って-name pingpong@127.0.0.1
いることですが、私が望むのは、アプリケーションを名前で一度起動し、ping@127.0.0.1
次に名前で起動することですpong@127.0.0.1
。
名前が ./rel/pingpong/releases/VSN/vm.config にあることはわかっていますが、アプリケーションを開始する前にファイルを手動で編集したくありません。のようなものが欲しいpingpong start -name=ping
。これを達成する方法はありますか?
erlang - 鉄筋:アプリケーションディレクトリがありません
鉄筋をテストしています
- Windows 8 64Bis
- Erlang64ビットR15B02
githubコードからrebarをコンパイルし、基本的なアプリを作成しました
reltoolのドキュメントを読んでいますが、application dirについて何も見つかりません。関連する唯一のオプションはincl_cond
、デフォルトでrebar
コマンドによって定義されています。
src / testapp.app.src
rel / reltool.config
erlang - 鉄筋フレンドリーな pkg を使用する rabbitmq-erlang-client は、開発環境で動作します 鉄筋リリースで失敗します
シンプルなHello World rebarizedおよびOTP「準拠」アプリにrabbitmq-erlang-clientのrebarフレンドリーパッケージを正常に使用しており、開発環境で問題なく動作しています。erl コンソールを起動しapplication:start(helloworld).
てブローカーに接続し、チャネルを開き、キューと通信することができます。
しかし、その後、作業を進めrebar generate
、リリースは問題なくビルドされますが、自己完結型のリリース パッケージから起動しようとすると、事態が突然爆発します。
rebar リリースが不明瞭な技術であることはわかっていますが、rabbitmq-erlang-client を使用したアプリの展開に関して、どのようなオプションがあるか知りたいです。
以下に、クラッシュ時のコンソールの出力を示します。
編集:コメントで要求されたとおり。
reltool.config
erlang - systools.make_tar が .ez アーカイブで .app ファイルを見つけられない
でリリースを作成していreltool
ます。出力フォルダーには、フォルダーがアーカイブにパックされrel/lib
たすべてのアプリケーションが含まれます。ebin
.ez
crypto
erl
フォルダから始めrel
ます。フォルダーへのパスebin
はコード パスにあります。つまり、code:get_path().
特に戻ります (フォルダー内の他のアプリについても同様ですlib
)。
しかし、それを呼び出そうとするとsystools:make_tar("releases/0.1/project").
、ファイルが見つからないと不平を言い.app
ます(リリースで言及されているすべてのアプリについて):
.app
ファイルがアーカイブにあることがわかりますが、何らかの理由でそれを見ることができないだけですsystools
。オプションを使用してebin
呼び出すときにフォルダーを指定しようとしましたが、機能していないようです (欠落している同じエラー)。また:make_tar
path
crypto.app
私に与えます:{error,enotdir}
。
たぶんsystools
、まだアーカイブを処理していませんか? で作成されたリリースから tar アーカイブを作成する他の方法はありますreltool
か? どんな助けでも大歓迎です。
erlang - rebar を使用して複数のアプリケーションでライブラリを共有するには?
次のようなプロジェクト構造があります。
と 、とに依存、game_server
とlogin_server
にgame_server
依存を配布したい。common_lib_1
common_lib_2
login_server
common_lib_1
common_lib_3
と で実行rebar create-node nodeid=xxx
するrel/game_server
とrel/login_server
、 を使用して配布を作成するrebar generate
と、多数の重複ファイルが生成されます。
次のようなきれいな構造でそれらを配布したい:
すべてのアプリケーションがライブラリを共有することを期待しています。それらには独自の起動スクリプト、vm および sys 構成があります。
これを行うには、クリーンな reltool.config を作成する方法を教えてください。
erlang - Elixir with Mix はどのようにデーモンを作成しますか?
Elixir と Mix はすべて、サーバーをデーモンとして作成したいと考えています。正しい方法を見つけることができませんでした。
さらに、erlang reltool を使用したいと考えています。