Wiele programów zwraca numer wersji za pomocą polecenia:
$ program --version
program (platform info) v1.2.3
Jest to przydatne do tworzenia skryptów instalacji lub konserwacji programu i innych kontrolowanych magii automatyzacji od administratorów systemu i przyjaciół.
Problem
Jak łatwo uzyskać numer wersji dla Erlang (OTP) ?
W sieci
Oto kilka niezadowalających rozwiązań ([1] i inne samouczki / dokumentacja Erlang):
Emulator
$ erl
1> erlang:system_info(otp_release).
"R13B03"
Trudne do napisania. Nie znalazłem sposobu na erl
wykonanie pojedynczego polecenia z wiersza poleceń powłoki.
Plik wydania
$ 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 (with shell).
Alternatywą może być również sprawdzenie ścieżki instalacji, ale nie jest to przenośne (moja ścieżka instalacji nie obejmuje wersji).
Kontekst osobisty: piszę skrypt, aby zainstalować tę samą wersję RabbitMQ z wtyczkami na kilku komputerach. Niektóre wtyczki mają minimalne wymagania dotyczące wersji OTP i od tego zaczęło się to pytanie.