有部分开发erlang的同学都是用erlang-solutions网站提供的erlang来安装的吧
但是在国内用这个站点的仓库地址网速烂到爆,只能用配合梯子来使用
偶然的机遇,我发现清华大学开源软件镜像站也有做这个站点的仓库的镜像,地址
哈哈,以后不用一升级erlang就皱眉了
Erlang 发布持续集成流程-1
Erlang 发布版本升级-7 sys模块
《Erlang 发布版本升级》 系列第七篇 - sys模块
Erlang 发布版本升级-6 升级模块与进程
《Erlang 发布版本升级》 系列第六篇 - 升级模块与进程
或许有些同学会很容易搞混,在升级中到底是升级进程还是升级代码模块.
答案显然是肯定的,升级代码模块,而我们说的升级进程,只是在需要同步升级进程内部状态的时候才需要,而同步更新也是先加载更新新的代码模块,然后再通知进程执行内部状态的转变.
只是,我们都知道我们appup里面只有提到模块,里面并没有提及到进程,而我们都知道进程的标示pid,都是动态的,而我们在做同步代码热更的时候,是怎么将模块与进程管理起来的呢?下面我带大家从源码中找出答案.
Erlang 发布版本升级-5 supervisor更新说明
《Erlang 发布版本升级》 系列第五篇 - supervisor更新说明
supervisor在我们热更中起到至关重要,而且设计到的内容比较多,需要注意的事项也很多,所以这里特别开了一个章节来说.
Erlang 发布版本升级-4 升级指令讲解
《Erlang 发布版本升级》 系列第四篇 - 升级指令讲解
插件虽然能帮助我们很方便的生成appup文件,但是如果你想要在升级的时候执行一下你的升级mnesia的record数据结构方法,插件不能分析出来我们要做这个的.
所以插件只能帮我们做其中一部分工作而已,另外一部分需要我们自己去处理,因此我们也需要对appup里面的指令进行进一步的学习.
Erlang 发布版本升级-3 升级发布版本工具讲解
《Erlang 发布版本升级》 系列第三篇 - 升级发布版本工具讲解
为了不加班,所以程序员一般都会开发一些便捷的工具来提高开发效率,下面就让我来给大家讲讲升级发布版本工具:rebar3_appup_plugin
Erlang 发布版本升级-2 gen_server热更
《Erlang 发布版本升级》 系列第二篇 - gen_server热更
OTP的gen_server
模块,我想应该是大家在erlang
开发中接触最多的模块了,但是我们经常会碰到要修改内部状态(state
)的时候,例如原来的state
不再适用于新的需求,需要改变state
的数据结构,增加或者减少一个字段
遇到这样情况之后,我想很大一部分同学都会选择关闭这个进程,然后加载新代码,然后再开启这个进程,但是面对运行中的环境,要做这个操作只能重启vm
了
其实我们并不需要重启vm
,只需要多动动手指敲多几行代码就能完成这个代码的热更了
Erlang 发布版本升级-1 代码热更简介
《Erlang 发布版本升级》 系列第一篇 - 代码热更简介