w12*_*128 20 linux distributions
我试图找到一种方法来确定适用于大多数(或理想情况下,所有)现代发行版的 Linux 发行版名称和版本。我注意到其中/etc/os-release
包含我尝试过的发行版(CentOS、Debian)所需的信息,但是依赖它的存在有多安全?诸如此类的命令uname -a
实际上并不包含相同的信息,并且lsb_release
在例如最小的 CentOS 上显然不存在。
有没有一种快速的方法可以准确地找出发行版附带的内容/etc/os-release
?此外,是否/etc/os-release
保证包含NAME
,VERSION
和PRETTY_NAME
字段?
Ste*_*itt 17
任何运行 systemd 的系统都应该有/etc/os-release
,它被指定为 systemd 的一部分。一些没有 systemd 的系统可能也有它(例如Debian 8,其中 systemd 是可选的,但/etc/os-release
在所有情况下都安装了)。
根据规范,所有字段都是可选的,有些具有默认值(“Linux”代表NAME
和PRETTY_NAME
)。
您会在/etc/os-release
公告中找到更多背景信息。