许多程序使用如下命令返回其版本号:
$ program --version
program (platform info) v1.2.3
这对于脚本编写程序的安装或维护以及系统管理员和朋友提供的一些其他受控自动化方法很有用。
问题
如何轻松获得Erlang(OTP)的版本号?
网络上
这里是一些不令人满意的解决方案([1]和其他教程/ Erlang文档):
仿真器
$ erl
1> erlang:system_info(otp_release).
"R13B03"
很难编写脚本。我还没有找到erl
从shell提示符执行单个命令的方法。
发布文件
$ cat /usr/lib/erlang/releases/RELEASES
[{release,"OTP APN 181 01","R13B03","5.7.4",
[{kernel,"2.13.4","/usr/lib/erlang/lib/kernel-2.13.4"},
{stdlib,"1.16.4","/usr/lib/erlang/lib/stdlib-1.16.4"},
{sasl,"2.1.8","/usr/lib/erlang/lib/sasl-2.1.8"}],
permanent}].
解析天堂(带外壳)。
另一种选择也可以是检查安装路径,但是它不是可移植的(我的安装路径不包括版本)。
个人背景:我正在编写一个脚本,以在几台计算机上安装具有插件的相同版本的RabbitMQ。一些插件对OTP版本的要求最低,这就是这个问题的开始方式。