私は一般的に rebar と erlang の初心者です。このチュートリアルに従って rebar を使用して erlang リリースを作成しようとしていました: http://www.metabrew.com/article/erlang-rebar-tutorial-generating-releases-upgradesで、生成されたリリースを実行する時点で行き詰まりました。
私のシステムは、ソースからインストールされた Ubuntu 11.04 64 ビット、erlang R14B03 です。
「bin/somenode console」を呼び出すと、次のいずれかのエラーが発生します。
Exec: /home/ghik/Inz/somerel/rel/somenode/erts-5.8.4/bin/erlexec -boot /home/ghik/Inz/somerel/rel/somenode/releases/1/somenode -mode embedded -config /home/ghik/Inz/somerel/rel/somenode/etc/app.config -args_file /home/ghik/Inz/somerel/rel/somenode/etc/vm.args -- console
Root: /home/ghik/Inz/somerel/rel/somenode
{"init terminating in do_boot",{'cannot load',hipe_amd64_encode,get_files}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
興味深いことに、実行するたびに、「hipe_amd64_encode」の代わりに別のアトムがリストされます。たとえば、「hipe_amd64_defuse」、「hipe_amd64_assembly」などです。おそらく、erlang は hipe をロードできないと思いますが、なぜそうなのかわかりませんそもそもロードしようとしています。このリリースには、カーネルと stdlib のみに依存する非常に単純なアプリケーションが 1 つだけ含まれています。
何らかの理由で、rebar は多くの不要なアプリケーションを含む .rel ファイルを生成します。
%% rel generated at {2011,9,6} {20,5,48}
{release,{"somenode","1"},
{erts,"5.8.4"},
[{kernel,"2.14.4"},
{stdlib,"1.17.4"},
{sasl,"2.1.9.4"},
{someapp,"1"},
{compiler,"4.7.4",load},
{crypto,"2.0.3",load},
{et,"1.4.3",load},
{gs,"1.5.13",load},
{hipe,"3.8",load},
{inets,"5.6",load},
{mnesia,"4.4.19",load},
{observer,"0.9.9",load},
{public_key,"0.12",load},
{runtime_tools,"1.8.5",load},
{ssl,"4.1.5",load},
{syntax_tools,"1.6.7.1",load},
{tools,"2.6.6.4",load},
{webtool,"0.8.8",load},
{wx,"0.98.10",load}]}.
rebar の .rel ファイルに非常に多くのアプリケーションがリストされているのはなぜですか? そして、もしよろしければ、なぜリリースが開始されないのでしょうか?