Próbuję znaleźć sposób na określenie nazwy i wersji dystrybucji Linuksa, która działałaby na większości (lub idealnie wszystkich) nowoczesnych dystrybucji. Zauważyłem, że /etc/os-release
zawiera informacje, których potrzebuję na temat wypróbowanych przeze mnie dystrybucji (CentOS, Debian), ale na ile bezpieczne jest poleganie na ich obecności? Polecenia takie jak uname -a
tak naprawdę nie zawierają tych samych informacji i lsb_release
najwyraźniej nie występują np. W minimalnym CentOS.
Czy istnieje szybki sposób, aby dowiedzieć się dokładnie, z czym pochodzą dystrybucje /etc/os-release
? Ponadto jest /etc/os-release
gwarancją zawierają NAME
, VERSION
i PRETTY_NAME
pól?
linux
distributions
w128
źródło
źródło
Odpowiedzi:
Każdy system z uruchomionym systemem powinien mieć taki
/etc/os-release
, który jest określony jako część systemd. Niektóre systemy bez systemd również mogą go mieć ( np. Debian 8, gdzie systemd jest opcjonalny, ale/etc/os-release
jest instalowany we wszystkich przypadkach).Zgodnie ze specyfikacją wszystkie pola są opcjonalne, a niektóre mają wartości domyślne („Linux” dla
NAME
iPRETTY_NAME
).Więcej informacji znajdziesz w
/etc/os-release
ogłoszeniu .źródło