1

でリリースを作成していreltoolます。出力フォルダーには、フォルダーがアーカイブにパックされrel/libたすべてのアプリケーションが含まれます。ebin.ezcrypto

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 に答える