Viele Programme geben ihre Versionsnummer mit einem Befehl zurück wie:
$ program --version
program (platform info) v1.2.3
Dies ist nützlich, um Skripte für die Installation oder Wartung des Programms und einige andere kontrollierte Automatisierungszauber von Systemadministratoren und Freunden zu erstellen.
Problem
Wie erhalte ich einfach die Versionsnummer für Erlang (OTP) ?
Im Netz
Hier sind einige unbefriedigende Lösungen ([1] und andere Tutorials / Erlang-Dokumentation):
Emulator
$ erl
1> erlang:system_info(otp_release).
"R13B03"
Schwer zu schreiben. Ich habe keine Möglichkeit gefunden erl
, einen einzelnen Befehl über eine Shell-Eingabeaufforderung auszuführen.
Datei freigeben
$ 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-Paradies (mit Shell).
Eine Alternative könnte auch darin bestehen, den Installationspfad zu überprüfen, der jedoch nicht portierbar ist (mein Installationspfad enthält zum einen nicht die Version).
Persönlicher Kontext: Ich schreibe ein Skript, um dieselbe Version von RabbitMQ mit Plugins auf mehreren Computern zu installieren. Einige Plugins stellen nur minimale Anforderungen an die OTP-Version, und so begann diese Frage.