2013-02-21 9 views
1

reltool으로 릴리스를 생성 중입니다. 출력 폴더 rel/lib에는 아카이브에 패키지 된 ebin 폴더가있는 모든 응용 프로그램이 들어 있습니다. crypto을 위해 :systools.make_tar는 .ez 아카이브에서 .app 파일을 찾을 수 없습니다.

crypto-2.2 
crypto-2.2/priv/ (with some files in the priv folder) 
crypto-2.2.ez 
crypto-2.2.ez/crypto-2.2/ebin/crypto.app 
crypto-2.2.ez/crypto-2.2/ebin/ (with some .beam files in the ebin folder) 

은 내가 rel 폴더에 erl를 시작합니다. 이 불평 systools:make_tar("releases/0.1/project").를 호출 할 때

"/usr/home/g/work/project/rel/lib/crypto-2.2.ez/crypto-2.2/ebin" 

그러나 아직이 할 수없는 다음 ebin 폴더의 경로 코드 경로에 다른 (그리고 유사 lib 폴더에있는 다른 앱) 사이 code:get_path(). 수익을 즉 (릴리스에 언급 된 모든 응용 프로그램의 경우) .app 파일을 찾을 수 :

crypto: File not found: "crypto.app" 

나는 그것을 systools 때문에 몇 가지 이유를 볼 수 없습니다 만의의 .app 파일이 아카이브에 참조하십시오. path 옵션을 사용하여 make_tar을 호출 할 때 ebin 폴더를 지정하려고했지만 작동하지 않는 것 같습니다 ( crypto.app이 누락 된 것과 같은 오류). 또한 :

file:consult("/usr/home/g/work/project/rel/lib/crypto-2.2.ez/crypto-2.2/ebin/crypto.app"). 

나에게 : {error,enotdir}을 준다.

아마도 systools은 아직 아카이브를 처리하지 못합니까? reltool으로 만든 릴리스에서 tar 아카이브를 만드는 다른 방법이 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.

답변

0

당신은 당신의 reltool.config 대부분의 경우

{excl_archive_filters, ["^include$","^priv$","^ebin$"]} 

에 다음도 추가하여 .ez 파일에서 EBIN 디렉토리를 제외하여 모두이 문제를 피할 수있는, 이것은 기본적으로 대부분의 생성을 해제 의미합니다 .ez 파일 중 하나이지만 릴리스는 여전히 정상적으로 작동해야합니다.

+0

감사합니다. 알고 있습니다. 그러나 이것은 .ez 아카이브를 완전히 비활성화하는 것을 의미합니다 (현재 ebin 만 거기에 간다). 따라서이 기능을 비활성화하는 대신 작동 시키거나 .ez 아카이브 내의 파일에 액세스하는 일부 오래된 모듈에서 실제로 작동하지 않는 방법을 찾아야합니다. 그러나 어떤면에서는 문제의 해결 방법입니다. 내가 뭘 (이상적으로) 찾고 있지 않습니다. BTW 또 다른 해결 방법은 모든 .ez 아카이브 압축을 풀고 systools을 실행하는 것입니다. 그러나 다시 한번 말하지만, 여전히 올바른 해결책으로 보이지 않습니다. – Amiramix

+0

알기. 나는 해결책을 모른다. 나는 .ez 파일 사용을 중단 한 정확한 이유를 기억하지 못한다. 그러나 나는 번거 로움을 느끼지 못한다고 결정한 충분한 합병증을 보았다. 얼랭 (Erlang) 메일 링리스트에 질문하지 않았다면, 그 편지를 추천 할 것입니다. – chops

+0

감사합니다. – Amiramix