當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang make_tar(Name)用法及代碼示例


make_tar(Name) -> Result
make_tar(Name, Opts) -> Result
類型:
Name = string()
Opts = [Opt]
Opt = 
    {dirs, [IncDir]} |
    {path, [Dir]} |
    {variables, [Var]} |
    {var_tar, VarTar} |
    {erts, Dir} |
    erts_all | src_tests | exref |
    {exref, [App]} |
    silent |
    {outdir, Dir} |
    no_warn_sasl | warnings_as_errors |
    {extra_files, ExtraFiles}
Dir = file:filename_all()
IncDir = src | include | atom()
Var = {VarName, PreFix}
VarName = PreFix = string()
VarTar = include | ownfile | omit
App = atom()
Result = 
    ok | error |
    {ok, Module :: module(), Warnings :: term()} |
    {error, Module :: module(), Error :: term()}
ExtraFiles = [{NameInArchive, file:filename_all()}]
NameInArchive = string()

創建發布包文件Name.tar.gz。該文件必須使用以下命令在目標係統上解壓和解包release_handler在安裝新版本之前。

發布資源文件Name.rel讀取以確定發布中包含哪些應用程序。然後是相關的應用資源文件App.app讀取以確定每個應用程序的版本和模塊(鍵vsnmodules, 看app(4))。

默認情況下,發布包文件位於 Name.rel 同一目錄下。也就是說,在當前工作目錄中,除非 Name 包含路徑。如果指定了選項{outdir,Dir},則它位於Dir 中。

如果 SASL 未作為應用程序包含在 .rel 文件中,則會發出警告,因為此類版本無法在升級中使用。要關閉此警告,請添加選項 no_warn_sasl

默認情況下,發布包包含每個包含的應用程序的目錄lib/App-Vsn/ebinlib/App-Vsn/priv。如果要包含更多目錄,請指定選項dirs,例如{dirs,[src,examples]}

所有這些文件都在當前路徑中搜索。如果指定了選項{path,[Dir]},則該路徑將附加到當前路徑。通配符 * 擴展到所有匹配的目錄。示例:"lib/*/ebin"

如果{extra_files, ExtraFiles}給出選項然後ExtraFiles添加其他要包含的內容後,將其添加到 tarball 中。這ExtraFileslist 是與格式相同的文件或目錄列表add_type()元組為erl_tar:添加/3,4

選項variables 可用於為某些應用程序指定除lib 之外的安裝目錄。如果指定了變量 {VarName,Prefix} 並且在目錄 Prefix/Rest/App[-Vsn]/ebin 中找到了應用程序,則該應用程序將作為 Rest/App-Vsn/ebin 打包到單獨的 VarName.tar.gz 文件中。

示例:如果指定了選項 {variables,[{"TEST","lib"}]} 並且 myapp.app 位於 lib/myapp-1/ebin 中,則應用程序 myapp 包含在 TEST.tar.gz 中:

% tar tf TEST.tar
myapp-1/ebin/myapp.app
...

選項 {var_tar,VarTar} 可用於指定是否存儲單獨的包以及存儲位置。在此選項中VarTar 是以下之一:


include

每個單獨的(變量)包都包含在主 ReleaseName.tar.gz 文件中。這是默認設置。


ownfile

每個單獨的(變量)包都會作為單獨的文件生成在與 ReleaseName.tar.gz 文件相同的目錄中。


omit

不會生成單獨的(變量)包。在變量目錄下找到的應用程序將被忽略。

發布包中還包含一個目錄releases,其中包含Name.rel和一個子目錄RelVsnRelVsnName.rel 中指定的發行版本。

releases/RelVsn 包含重命名為 start.boot 的引導腳本 Name.boot 以及文件 relupsys.configsys.config.src(如果找到)。這些文件在與 Name.rel 相同的目錄、當前工作目錄以及使用選項 path 指定的任何目錄中搜索。對於sys.config,如果找到sys.config.src,則不包含該值。

如果發布包要包含新的 Erlang 運行時係統,則將指定運行時係統 {erts,Dir}erts-ErtsVsn/bin 目錄複製到 erts-ErtsVsn/bin 。默認情況下不會複製某些 erts 可執行文件,如果您想包含所有可執行文件,可以指定 erts_all 選項。

所有檢查均具有函數make_script在創建發布包之前執行。選項src_testsexref在這裏也有效。

返回值以及錯誤和警告的處理與說明相同make_script.

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 make_tar(Name) -> Result。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。