发布资源文件

要定义一个发布,首先要创建一个 发布资源文件 ,简称 .rel 文件,我们在这里指定发布的名称和版本、它基于哪个ERTS版本,以及它由哪些应用组成:

  1. {release, {Name,Vsn}, {erts, EVsn},
  2. [{Application1, AppVsn1},
  3. ...
  4. {ApplicationN, AppVsnN}]}.

文件必须叫做 Rel.rel ,其中 Rel 是一个唯一名字。

NameVsnEvsn 都是字符串。

每个 Application (原子)和 AppVsn (字符串)是包含在发布内的应用的名称和版本。注意,基于Erlang/OTP的最小发布由应用 kernelstdlib 组成,所以这两个应用必须被包含在列表中。

例如:我们要创建一个来自应用一章的 ch_app 的发布。这个应用包含以下 .app 文件:

  1. {application, ch_app,
  2. [{description, "Channel allocator"},
  3. {vsn, "1"},
  4. {modules, [ch_app, ch_sup, ch3]},
  5. {registered, [ch3]},
  6. {applications, [kernel, stdlib, sasl]},
  7. {mod, {ch_app,[]}}
  8. ]}.

.rel 文件还必须包含 kernelstdlibsasl ,因为这些应用是 ch_app 必须的。我们把这个文件叫做 ch_rel-1.rel

  1. {release,
  2. {"ch_rel", "A"},
  3. {erts, "5.3"},
  4. [{kernel, "2.9"},
  5. {stdlib, "1.12"},
  6. {sasl, "1.10"},
  7. {ch_app, "1"}]
  8. }.