所有这些 Debian 版本号之间有什么区别?

所有这些 Debian 版本号之间有什么区别?

在尝试查找我正在运行的 Debian 版本时,我运行了几个命令;令人困惑的是,几乎所有这些命令都返回不同的结果。

例如,在/proc/version我发现:

Linux version 3.2.0-4-686-pae ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.63-2+deb7u2

我可以看出3.2.0-4-686-pae是内核版本,这对我来说很清楚。但输出的其余部分似乎给出了两个不同的 Debian 版本号 和4.6.3-143.2.63-2+deb7u2后者也从 输出uname)。

此外,当我查看时/etc/debian_version,它告诉我我正在使用 version 7.7

为什么我在这些地方列出了这么多不同的 Debian 版本,这些数字之间有什么区别?

答案1

GCC 版本是用于构建内核的 GNU C 编译器的版本。

根据Debian 的文档3.2.0-4-686-pae是所描述的内核版本上游版本[-abiname][-featureset]-风味。所以上游版本是3.2(在wheezy中添加了.0)。最终的3.2.63-2+deb7u2很可能是软件包版本。

我怀疑第一个版本(3.2.0)是为了 ABI 兼容性,包名称反映了 pacakge 数据库中的实际版本控制。

答案2

整个字符串gcc version 4.6.3 (Debian 4.6.3-14)表示 GCC 的版本。括号告诉您,您正在运行由 Debian 团队使用补丁定制的 GCC:4.6.3 是 GCC 版本,14 是 Debian 附加的后缀,用于区分他们所应用的补丁之间的差异。

我不确定最后一个版本指的是什么(但它完全看起来像内核版本)。它是特定于供应商的操作系统名称的一部分,因此 Debian 开发人员实际上可以将他们喜欢的任何内容放在那里。这可能是构建该版本的计算机上运行的内核版本或类似版本。

答案3

这并不是 Debian 的事情(但请参阅评论);您可能会在任何 Linux 系统上找到它。该字符串记录在man proc. /proc是一个内核接口,这意味着当您读取其中的文件时,您实际上是在向内核询问信息。 /proc/version返回通过其他 proc 文件分别可用的三个事物的串联。字符串本身会在编译时内置到内核中。

第一部分来自/proc/sys/kernel/ostype,可能只是Linux

第二部分来自/proc/sys/kernel/osrelease并指的是实际的内核版本,在您的示例中3.2.0-4-686-pae

第三部分来自/proc/sys/kernel/version并包括构建号(例如#1)和对其构建的机器的引用(SMP= 对称多处理,即普通 PC)以及构建的日期和时间。

电子邮件地址也来自构建,gcc 版本是用于执行此操作的编译器。

答案4

  • 3.2.0-4-686-pae 是内核版本
  • 4.6.3是gcc版本
  • #1 SMP Debian 3.2.63-2+deb7u2 是内核版本

有关更多信息,请尝试 uname -a 或 uname --help

相关内容