在尝试查找我正在运行的 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-14
(3.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