1

我正在使用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_tarpathcrypto.app

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

给我:{error,enotdir}

也许systools还没有处理档案?有没有其他方法可以从使用的版本创建 tar 存档reltool?任何帮助将不胜感激。

4

1 回答 1

0

您还可以通过将以下内容添加到 reltool.config 从 .ez 文件中排除 ebin 目录来完全避免这种情况

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

在大多数情况下,这基本上意味着禁用大多数 .ez 文件的创建,但该版本应该仍然可以正常工作。

于 2013-02-23T13:29:07.903 回答