“uname -r”输出中的这些数字是什么意思?

“uname -r”输出中的这些数字是什么意思?

当我在 CentOS 上运行“uname -r”命令时,得到以下输出: 3.10.0-693.21.1.el7.x86_64 输出“693.21.1”部分是什么意思?

答案1

简而言之:。upstream-RedHat

破折号 ( 3.10.0) 之前的部分是该内核包所基于的上游源的版本号。 Red Hat 采用 Linux 内核的特定版本,并在主要版本的整个生命周期中保留它(因此所有 RHEL 7.x 版本都使用内核 3.10.0,RHEL 6.x 使用 2.6.32 等)。他们制作了大量补丁来修复错误并支持更新的硬件。破折号 ( ) 后面的数字693.21.1是该软件包的 RHEL/CentOS 版本号,el7表示该软件包适用于所有 RHEL/CentOS 7.x 版本。

我不知道为什么版本号分为几个部分。第一个数字是不是与上游维护版本号一致,并且它也不是源版本号,因为 xyz1 和 xyz2 之间存在源差异。

答案2

软件包以两种形式发布:“发布”和“更新”发布。其他答案更好地解释了这部分。

例如,RHEL-7.4 附带的内核版本为 3.10.0-693。在 RHEL-7.5 中,它是 3.10.0-862。 ( 看这里)。一个重要的区别是,版本在“-”后面只有一个数字,而不是 3。其余数字用于指示错误和安全修复,并增量使用(请参阅这里)。看规格/内核.spec在commitdiff这里这里为例。您所采用的示例是更新的内核。

答案3

这是内核版本的次要版本更新部分。如果安装了多个内核,请运行以下命令之一:

rpm -qa kernel\*
rpm -qa | grep kernel

您将得到一个输出,显示所有已安装内核的版本和次要版本更新。在我的系统上,我得到这个:

kernel-tools-libs-3.10.0-862.3.2.el7.x86_64
kernel-3.10.0-862.2.3.el7.x86_64
kernel-3.10.0-862.3.2.el7.x86_64
kernel-3.10.0-693.11.6.el7.x86_64
kernel-3.10.0-693.17.1.el7.x86_64
kernel-tools-3.10.0-862.3.2.el7.x86_64
kernel-3.10.0-693.21.1.el7.x86_64

如您所见,我有3.10.0-862.2.33.10.0-862.3.23.10.0-693.17.1.和 3.10.0-693.11.6。根据安装的内容,您可能有更多或更少。

答案4

uname -r返回操作系统版本的主要部分。

相关的是uname -v返回操作系统版本的一小部分。

对于除称为 AIX 的“Alien UNIX”之外的所有平台都是如此,其中 uname -r 和 uname -v 会被混淆。

相关内容