2012-02-24 5 views
2

私は、rebarを使用して作業しているerlangアプリケーションのリリースを構築するのに奇妙な問題があります。基本的に、私のシステムにインストールされているerlang thriftクライアントを見つけることはできないようです。私は、Erlangのプロンプトから倹約アプリケーションをロードすることにより、これを確認することができます'rebar generate'には生成されたリリースにいくつかの依存関係が含まれていません

$ erl 
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false] 

Eshell V5.8.5 (abort with ^G) 
1> application:load(thrift). 
ok 
2> application:loaded_applications(). 
[{kernel,"ERTS CXC 138 10","2.14.5"}, 
{thrift,"Thrift bindings","0.9.0-dev"}, 
{stdlib,"ERTS CXC 138 10","1.17.5"}] 
3> 

しかし、私は自分のアプリケーションのリリースを構築するために「鉄筋が発生」を実行しようとすると、それは失敗します。

$ rebar generate 
==> rel (generate) 
{"init terminating in do_boot","Release fern uses non existing application thrift"} 

Crash dump was written to: erl_crash.dump 
init terminating in do_boot (Release fern uses non existing application thrift) 

{application, fern, [ 
    {description, "elided"}, 
    {vsn, "0.5.0"}, 
    {modules, [ 
    fern_app, 
    fern_sup, 
    accounts_repository, 
    fern_http_request, 
    fern_system_api, 
    metadata_fetcher, 
    metadata_process, 
    repository, 
    repository_server, 
    timestamps_repository, 
    hbase_thrift, 
    hbase_types, 
    utils 
    ]}, 
    {registered, [ 
    fern_sup 
    ]}, 
    {applications, [ 
    kernel, 
    stdlib, 
    inets, 
    ssl 
    ]}, 
    {mod, { fern_app, []}}, 
    {env, []}, 
    {agner, [ 
    {requires, ["jiffy", "meck", "mochiweb"]} 
    ]} 
]}. 

...と私のreltool.config:

ここに私のアプリケーションファイル、fern.app.srcです

両方のアプリケーションリストから低速を削除すると、リリースではリザーブが生成されますが、リリーフライブラリは含まれないため、実行時には失敗します。誰かが私がここで間違っていることについてのガイダンスを私に提供できますか?この出くわす他の誰の便宜上

多くのおかげで、

ティム

答えて

4

- 私は最終的に問題を働きました。何らかの理由で、鉄筋は、リリース内で 'thrift-0.9.0-dev'に 'thrift'アプリケーションの名前を変更します。上の設定で 'thrift-0.9.0-dev'(これは原子であり、文字列ではなく、一重引用符を使用することに注意してください)の原子 '倹約'のすべてのインスタンスを並べ替えることになります。

関連する問題