Nhiều chương trình trả về số phiên bản của chúng bằng lệnh như:
$ program --version
program (platform info) v1.2.3
Điều này rất hữu ích cho việc tạo kịch bản cài đặt hoặc bảo trì chương trình và một số phép thuật tự động hóa có điều khiển khác từ Quản trị viên hệ thống và bạn bè.
Vấn đề
Làm cách nào để dễ dàng lấy số phiên bản cho Erlang (OTP) ?
Trên mạng
Dưới đây là một số giải pháp không đạt yêu cầu ([1] và các hướng dẫn / tài liệu Erlang khác):
Giả lập
$ erl
1> erlang:system_info(otp_release).
"R13B03"
Khó viết kịch bản. Tôi không tìm thấy cách nào để erl
thực thi một lệnh duy nhất từ dấu nhắc trình bao.
Phát hành tệp
$ 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}].
Phân tích cú pháp thiên đường (có vỏ).
Một giải pháp thay thế cũng có thể là kiểm tra đường dẫn cài đặt, nhưng đó không phải là di động (đường dẫn cài đặt của tôi không bao gồm phiên bản, cho một).
Bối cảnh cá nhân: Tôi đang viết kịch bản để cài đặt cùng một phiên bản RabbitMQ với các plugin trên một số máy. Một số plugin có yêu cầu tối thiểu đối với phiên bản OTP và đó là cách mà câu hỏi này bắt đầu.