2012-02-24 2 views
2

철근을 사용하여 내가 작업하고있는 erlang 응용 프로그램의 릴리스를 만드는 이상한 문제가 있습니다. 기본적으로 내 시스템에 설치되어있는 erlang thrift 클라이언트를 찾을 수 없습니다. 내가 얼랑 프롬프트에서 중고품 응용 프로그램을로드하여이를 확인할 수 있습니다 : 내 응용 프로그램의 릴리스를 구축하기 위해 '생성 철근'을 실행하려고 할 때'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

는 - 나는 결국 문제를했다. 어떤 이유로, rebar는 'thrift-0.9.0-dev'로 'thrift'어플리케이션의 이름을 변경합니다. 위의 설정에서 'thrift-0.9.0-dev'라는 원자 'thrift'의 모든 인스턴스를 변경하면 (문자열이 아닌 원자이므로 작은 따옴표 사용) 정렬됩니다.