/etc/lsb-release与/etc/os-release的区别

25

我需要使用bash找出我正在运行的Linux发行版。找到了这个页面,非常有帮助。

然而我的系统有两个/etc/*-release文件。

/etc/lsb-release
/etc/os-release

看起来os-release提供了更多的信息,但这两个文件实质上做的事情似乎是一样的。有人知道它们之间的区别吗?顺带一提,在lsb-release中,lsb代表什么?


2
Linux标准基础 - Pavel
@Pavel 你知道是否存在非标准基础吗?另外,你知道 Linux 标准基础中的“Base”是什么意思吗? - flashburn
2
真的很混乱...只需查看https://unix.stackexchange.com/questions/6345/how-can-i-get-distribution-name-and-version-number-in-a-simple-shell-script或https://superuser.com/questions/80251/how-to-know-which-linux-distribution-im-using。 - Pavel
这个问题不符合StackOverflow定义的编程范畴。它可能更适合在https://superuser.com或https://unix.stackexchange.com上提问。请使用您的问题底部的“flag”链接,并要求管理员将其移动。请不要在两个不同的网站上发布相同的问题。在此处发布更多问题之前,请阅读https://stackoverflow.com/help/on-topic,https://stackoverflow.com/help/how-to-ask,https://stackoverflow.com/help/dont-ask和https://stackoverflow.com/help/mcve。祝好运! - shellter
显示剩余3条评论
1个回答

40

/etc/lsb-release文件是一些但不是所有Linux发行版为旧程序准备的文件。 "lsb"指的是Linux标准基础,该项目致力于定义任何Linux发行版都要遵循的一组共同标准,包括文件系统布局等。然而,那个文件/etc/lsb-release并不是标准的一部分。这是一些发行版使用的额外东西,但不是全部。

/etc/os-release文件确实是标准的。任何基于systemd的发行版,包括Red Hat Enterprise Linux、CentOS、Fedora、Gentoo、Debian、Mint、Ubuntu和许多其他发行版,都必须有该文件。不使用systemd的发行版也可能有该文件。

如果您需要一种可靠的检测运行的Linux发行版的方式,则最好的选择是阅读/etc/os-release文件。如果那里没有文件,可以尝试运行名为lsb_release的程序。但忽略掉/etc/lsb-release文件。

您可以在此处此处了解有关os-release的更多信息。为了好玩,请看看Linux发行版曾使用的所有不同文件


1
优秀的回答! - hek2mgl
2
/etc/os-release 也被 FreeBSD 采用。 - ciceron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接