在哪些 Linux 发行版上我可以依赖 /etc/os-release 的存在?

在哪些 Linux 发行版上我可以依赖 /etc/os-release 的存在?

我正在尝试找到一种方法来确定适用于大多数(或理想情况下所有)现代发行版的 Linux 发行版名称和版本。我注意到其中/etc/os-release包含我尝试过的发行版(CentOS、Debian)所需的信息,但是依赖它的存在有多安全?诸如此类的命令uname -a实际上并不包含相同的信息,并且lsb_release显然不存在于例如最小的 CentOS 上。

有没有一种快速的方法可以准确地找出发行版附带的内容/etc/os-release?此外,/etc/os-release保证包含NAME,VERSIONPRETTY_NAME字段?

答案1

任何运行 systemd 的系统都应该/etc/os-release指定的作为 systemd 的一部分。一些没有 systemd 的系统也可能有它(例如Debian 8,其中 systemd 是可选的,但/etc/os-release在所有情况下都会安装)。

根据规范,所有字段都是可选的,有些字段具有默认值(“Linux”表示NAMEPRETTY_NAME)。

您会发现更多背景信息/etc/os-release公告

相关内容