我正在使用reltool
创建一个版本。输出文件夹rel/lib
包含将ebin
个文件夹打包到.ez
个档案中的所有应用程序,例如crypto
:
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)
我在erl
文件夹中启动rel
。 ebin
文件夹的路径位于代码路径中,即code:get_path().
返回其他文件夹(同样适用于lib
文件夹中的其他应用程序):
"/usr/home/g/work/project/rel/lib/crypto-2.2.ez/crypto-2.2/ebin"
但是当试图致电systools:make_tar("releases/0.1/project").
时,它抱怨它找不到.app
文件(对于发布中提到的所有应用):
crypto: File not found: "crypto.app"
我看到.app
文件位于存档中,只有systools
由于某种原因无法看到它。我在使用ebin
选项调用make_tar
时尝试指定path
文件夹但它似乎不起作用(与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 :(得分:0)
通过将以下内容添加到您的reltool.config
,也可以通过从.ez文件中排除ebin目录来完全避免这种情况。{excl_archive_filters, ["^include$","^priv$","^ebin$"]}
在大多数情况下,这基本上意味着禁用大多数.ez文件的创建,但是发布应该仍然可以正常工作。