我的 debian 版本号

sho*_*key 0 version debian

我的操作系统是从 debian 8.5.0 amd64 安装的。
安装后执行命令。

cat /etc/issue
Debian GNU/Linux 8 \n \l
Run Code Online (Sandbox Code Playgroud)

这里没有 8.5。

cat /proc/version
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26)
Run Code Online (Sandbox Code Playgroud)

这里也没有 8.5。

deb8u2 是否意味着 debian 8.5?

Jde*_*eBP 6

/etc/os-release尽管手册中明确指出允许使用次要版本,并且其他 Linux 发行版也包含次要版本号,但Debian 并未在 中包含次要版本号。

任何人对此提出的唯一解释是相当薄弱的解释——诚然是由一个在讨论论坛上只知道化名的人提供的,几乎没有任何官方的说法——8.5的发布公告说“这个更新确实不构成 Debian 8 的新版本”。然而,同样的公告在其标题中使用了“8.5”作为字符串。

您可以通过特定于 Debian 的方式获取次要编号,这仍然是其 FAQ 文档中提到的唯一机制,完全没有提及/etc/os-release:再次使用lsb_release或阅读/etc/debian_version包含次要版本号的 Debian 特定文件证明次要编号被认为是版本的一部分。

Debian 不是唯一一个在/etc/os-release. CentOS 也不行。(请参阅 CentOS错误 #9448错误 8359。)Arch 根本不包含版本字符串。

至于deb8u2,这是不是一个完整版本字符串要么。正如您在该输出中看到的,实际版本字符串是3.16.43-2+deb8u2. 此字符串遵循将本地版本字符串作为原始版本字符串后缀的约定。这里的原始版本是3.16.43,后缀是2+deb8u2,称为软件包的 Debian 版本。你会发现这个方案在 Debian 软件包版本中被大量使用。后缀确实表示 Debian 8,但更新号是Debian 软件包版本的更新号,而不是Debian 操作系统的次要版本号。这是Debian 中 Linux 版本的 Linux 内核包debNuM3.16.43和 Debian 版本2+deb8u2。查看该包的版本历史

在更大的图片中,/proc/version包含(运行)内核的版本字符串,特别是包含内核的 D​​ebian 内核包的版本字符串,而不是操作系统的版本字符串。


Abd*_*ull 5

对于 Debian 9,您可以使用lsb_release -acat /etc/debian_version

## Example Debian 9.13 ##

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.13 (stretch)
Release:        9.13
Codename:       stretch

$ cat /etc/debian_version
9.13
Run Code Online (Sandbox Code Playgroud)

至少从 Debian 11(.2?) 开始,只会cat /etc/debian_version显示“次要”版本:

## Example Debian 11.2 ##

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye

$ cat /etc/debian_version
11.2
Run Code Online (Sandbox Code Playgroud)