以发布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,热更新完成