当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。