Molti programmi restituiscono il numero di versione con un comando come:
$ program --version
program (platform info) v1.2.3
Ciò è utile per creare script per l'installazione o la manutenzione del programma e per qualche altra magia di automazione controllata da amministratori di sistema e amici.
Problema
Come ottenere facilmente il numero di versione di Erlang (OTP) ?
In rete
Ecco alcune soluzioni insoddisfacenti ([1] e altri tutorial / documentazione Erlang):
Emulatore
$ erl
1> erlang:system_info(otp_release).
"R13B03"
Difficile da scrivere. Non ho trovato un modo per erl
eseguire un singolo comando da un prompt della shell.
File di rilascio
$ 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 (con conchiglia).
Un'alternativa potrebbe anche essere il controllo del percorso di installazione, ma non è portatile (il mio percorso di installazione non include la versione, per esempio).
Contesto personale: sto scrivendo uno script per installare la stessa versione di RabbitMQ con plugin su più macchine. Alcuni plugin hanno requisiti minimi per la versione OTP ed è così che è iniziata questa domanda.