我使用以下命令查看内核的名称、发行版和版本。
-bash-4.1$ uname -s
Linux
-bash-4.1$ uname -r
2.6.32-279.el6.x86_64
-bash-4.1$ uname -v
#1 SMP Wed Jun 13 18:24:36 EDT 2012
内核的release和版本之间有什么区别和关系?谢谢!
Linux 发行版(例如 Ubuntu、Mint,...)有类似的问题吗?即 Linux 发行版的发行版和版本之间有什么区别和关系?
答案1
uname -r
第一个是编译内核时使用的版本字符串。这就是 的作用-r
。
$ uname -r
3.13.7-100.fc19.x86_64
该字符串可能会有点令人困惑,但基本部分(第一个破折号之前的所有内容)是您正在使用的实际 Linux 内核版本的一部分。其余的与选择的包装选项有关。
我这是什么意思?
- 那么在上面的场景中,3.13.7将是内核的实际版本。
- 这-100告诉您 Fedora 打包程序对其应用了各种补丁集,并且他们通过附加数字来跟踪这些附加补丁集以跟踪它们,并且还表示该内核是以下内核的基础内核3.13.7+ 这一切的一部分-100。
- 内核已打包为版本19费多拉 (FC19)。
- 它被包装为*x86_64*(64 位)架构。
uname -v
因为-v
它向您显示内核何时编译/构建。
$ uname -v
#1 SMP Mon Mar 24 21:53:16 UTC 2014
在我的 Fedora 19 系统上,您可以通过查看内核包实际上是通过 RPM 构建的时间来说服自己这实际上是正确的。
$ rpm -qi kernel-$(uname -r) | grep -E "Build Date"
Build Date : Mon 24 Mar 2014 06:31:17 PM EDT
构建日期略有不同,因为这uname -v
是编译时“烧录”到内核中的内容。 RPM 中的构建日期是从 RPM 在包构建期间将内核编译时间刻录到其中的时间开始的。
答案2
发布遵循内核版本,并添加了包/版本特定信息。如果我们按照你的例子2.6.32-279.el6.x86_64
,这意味着:
- 2.6.32 Linux 内核,这是基础版本,告诉您大多数发行版和软件包中 Linux 内核的版本。
- 279 是该软件包的特定发行版本。
el6
建议使用 Enterprise Linux (RHEL/CentOS)。这些发行版中发生的情况是,它们使用相同的内核版本,只是向后移植重要的补丁,并且每次都会增加软件包编号,以便您的软件包管理器可以更新它。此版本标记是特定于发行版的,并且可能因不同的发行版和包管理器而异。它是在编译时选择的。
版本显示内核已编译。