创建一个发布包

函数 systools:make_tar/1,2 以一个 .rel 文件作为输入,并创建一个包含了指定应用的压缩tar包,即一个发布包(release package)。

  1. 1> systools:make_script("ch_rel-1").
  2. ok
  3. 2> systools:make_tar("ch_rel-1").
  4. ok

默认的发布包包含了所有的应用的 .app 文件和目标代码,并根据 应用目录结构 建立结构,同时将二进制的启动脚本更名为 start.boot ,还包含了 .rel 文件。

  1. % tar tf ch_rel-1.tar
  2. lib/kernel-2.9/ebin/kernel.app
  3. lib/kernel-2.9/ebin/application.beam
  4. ...
  5. lib/stdlib-1.12/ebin/stdlib.app
  6. lib/stdlib-1.12/ebin/beam_lib.beam
  7. ...
  8. lib/sasl-1.10/ebin/sasl.app
  9. lib/sasl-1.10/ebin/sasl.beam
  10. ...
  11. lib/ch_app-1/ebin/ch_app.app
  12. lib/ch_app-1/ebin/ch_app.beam
  13. lib/ch_app-1/ebin/ch_sup.beam
  14. lib/ch_app-1/ebin/ch3.beam
  15. releases/A/start.boot
  16. releases/ch_rel-1.rel

注意在制作发布包之前,生成新的启动脚本没有设置 local 选项。在发布包中,所有的应用目录都放在了 lib 。同时,我们不知道发布包会被安装到何处,所以我们不想在启动脚本中硬编码任何绝对路径。

如果有一个 relup 文件以及/或叫做 sys.config 系统配置文件,这些文件也会被包含在发布包。参见 发布处理 :

也可以设置参数让发布包包含代码和ERTS二进制文件。

如何使用发布包安装首个目标系统,请参考系统原理。如果在已存在系统的安装新的发布包,请参考 发布处理