De nombreux programmes renvoient leur numéro de version avec une commande comme:
$ program --version
program (platform info) v1.2.3
Ceci est utile pour créer des scripts pour l'installation ou la maintenance du programme, et pour une autre magie d'automatisation contrôlée par les administrateurs système et amis.
Problème
Comment obtenir facilement le numéro de version d'Erlang (OTP) ?
Sur le net
Voici quelques solutions insatisfaisantes ([1] et autres tutoriels / documentation Erlang):
Émulateur
$ erl
1> erlang:system_info(otp_release).
"R13B03"
Difficile à scénariser. Je n'ai pas trouvé de moyen d' erl
exécuter une seule commande à partir d'une invite du shell.
Dossier de sortie
$ 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}].
Parsing paradise (avec shell).
Une alternative pourrait également être de vérifier le chemin d'installation, mais ce n'est pas portable (mon chemin d'installation n'inclut pas la version, par exemple).
Contexte personnel: j'écris un script pour installer la même version de RabbitMQ avec des plugins sur plusieurs machines. Certains plugins ont des exigences minimales sur la version OTP, et c'est ainsi que cette question a commencé.