多くのプログラムは、次のようなコマンドでバージョン番号を返します。
$ program --version
program (platform info) v1.2.3
これは、プログラムのインストールやメンテナンスのスクリプトを作成する場合や、システム管理者や友人からのその他の制御された自動化マジックに役立ちます。
問題
簡単アーラン(OTP)のバージョン番号を取得する方法?
ネット上
ここにいくつかの不十分なソリューションがあります([1]と他のチュートリアル/ Erlangのドキュメント):
エミュレータ
$ erl
1> erlang:system_info(otp_release).
"R13B03"
スクリプトを書くのは難しい。erl
シェルプロンプトから単一のコマンドを実行する方法が見つかりませんでした。
リリースファイル
$ 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バージョンの最小要件を備えており、それがこの質問の始まりです。