• 创建一个发布包

    创建一个发布包

    函数 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二进制文件。

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