erlang的打包工具rebar

以发布ping为例
1.获取源码+deps,并且完成编译

2生成配置文件
cd ~
mkdir rel
cd rel
../rebar create-node nodeid=ping

3.修改原始配置文件,
reltool.config
lib_dirs %配置deps库路径,必须配置打包应用的路径
{lib_dirs, ["../", "../deps/", "../apps/"]}

{incl_cond, exclude}, %该选项需要列出需要的erlang lib库
{incl_cond, derived}, %该选项默认erlang lib库,不需要自己写

{rel, "game", "1", %版本号

{app, ranck, [{mod_cond, app}, {incl_cond, include}]} %第三方库或者app配置

{app, game, [{incl_cond, include}, {lib_dir, ".."}]}, %或者配置该应用的路径

rebar.config
{sub_dirs, ["rel"]}.

4.生成系统
cd rel
../rebar generate

release_handler:which_releases(). %%查看当前版本

5.热更

<4>生成版本1.0.0
修改了代码,此时需要热更
源打包文件夹重命名成rel_1.0.0

a.修改配置文件
ping.app.src %修改版本号
reltool.config %修改版本号
b.重新release
cd rel
../rebar generate
../rebar generate-appups previous_release=myapp_1.0.0 指定之前的版本是1
../rebar generate-upgrade previous_release=myapp_1.0.0

c.热更
mv rel/ping_1.0.1.tar.gz rel/ping_1.0.0/releases/
在erl shell控制台
release_handler:unpack_release("ping_1.0.1").
release_handler:install_release("1.0.1").
release_handler:make_permanent("1.0.1").

ok,热更新完成

posted @ 2020-12-08 17:01  孤独信徒  阅读(690)  评论(0)    收藏  举报