Я пытаюсь найти способ определить имя и версию дистрибутива Linux, который бы работал на большинстве (или в идеале, на всех) современных дистрибутивах. Я заметил, что /etc/os-release
содержит информацию, которая мне нужна в дистрибутивах, которые я пробовал (CentOS, Debian), но насколько безопасно полагаться на его наличие? Такие команды, как uname -a
, на самом деле, не содержат одинаковую информацию и, lsb_release
по-видимому, не присутствуют, например, в минимальном CentOS.
Есть ли быстрый способ узнать, какие именно дистрибутивы поставляются /etc/os-release
? Кроме того, будет /etc/os-release
гарантированно содержать NAME
, VERSION
и PRETTY_NAME
поле?
linux
distributions
w128
источник
источник
Ответы:
Любая система, работающая с systemd, должна иметь это
/etc/os-release
, как указано в systemd. Некоторые системы без systemd могут также иметь его ( например, Debian 8, где systemd не является обязательным, но/etc/os-release
устанавливается во всех случаях).Согласно спецификации все поля являются необязательными, а некоторые имеют значения по умолчанию («Linux» для
NAME
иPRETTY_NAME
).Вы найдете больше фона в
/etc/os-release
объявлении .источник