如何确定RedHat
我运行的是哪个 Linux 版本?
这是我读过的:
/etc/redhat-release
文件包含版本,但任何人都可以篡改该文件。- 人们说
uname
命令,但你可以在 Redhat 上安装任何内核。
如果我正在运行 redhat 5.1 并且有人用 5.2 或 5.x 升级它,那么什么决定了 RedHat 的版本?
甚至lsb_release -a
读取 /etc/redhat-release 文件。
试试这个命令:
rpm -qa | grep release
例如在我的机器上我得到这个
redhat-release-workstation-6Workstation-6.4.0.4.el6.x86_64
如果“任何人”对您的机器具有 root 访问权限以更改 /etc/redhat-release 或安装备用内核,那么您很可能比确定系统的 redhat 版本遇到更大的麻烦。
只需使用 /etc/redhat-release 指出的值,或者在可移植性方面甚至更好,使用 lsb_release 的输出,因为这正是它们的目的。
“任何人”都可以对您的系统做任何事情,根本没有其他机会。
您可以在最近的 linux 发行版上使用 lsb_release 命令。如果您发出:
lsb_release -i -r
或者
uname -r
并映射输出。2.6.9 内核是 RHEL4,2.6.18 内核是 RHEL5。如有必要,您可以将完整版本映射到 Red Hat 的特定更新版本(即 2.6.9-89 是 RHEL5 U4)。
注意:自 2012 年 7 月以来,/etc/os-release
应该是查找任何操作系统版本的标准文件。
- 它减轻了只想知道他们正在运行的发行版的应用程序开发人员检查大量单独的发布文件的工作。
- 它提供了一个“漂亮”的名称(即向用户显示的名称)和机器可解析的版本/操作系统标识符(即用于构建系统)。
- 它是可扩展的,如果需要可以轻松学习新领域。
请参阅其手册页。
红帽示例:
# cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.0 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.0"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.0 (Maipo)"
适用于众多 Linux 发行版的技巧:
cat /etc/issue
红帽 6 上的示例:
$ cat /etc/issue
CentOS release 6.7 (Final)
Kernel \r on an \m
$
最简单的命令是:
lsb_release -d
尝试
uname -r
或者
cat /etc/issue
对于最近的 linux 机器
lsb_release -d
对于今天或将来正在阅读本文的人:
正在运行的内核版本是您的 RedHat 版本。可能安装了其他版本,但未运行。
因此,如果机器上安装了 RedHat 5.1、5.2 和 5.x,一次只能运行 1 个。这是在系统启动 uop 时启动的版本。要确定实际运行的版本,请使用uname
命令:
uname -r
这将返回内核版本号。对于 RedHat 5,它将是 2.6.18-[something]
RH 5.1 是 2.6.18-53
RH 5.2 是 2.6.18-92
要将内核版本号转换为 Redhat 版本号,请参阅此链接:
Red Hat Enterprise Linux Release Dates
该文件/etc/redhat-release
是获取供应商版本(包括 5.X)的标准方式。我认为你不应该忽视这种方式。当然,您可以使用其他软件的各种技巧来显示当前的操作系统版本,但无论如何,其中许多都在解析 /etc 文件。如上所述,您可以使用 rpm 查询来获取版本。获取此类信息的另一种方法:rpm -q <vendor-name>-release
顺便说一句,我同意上面的评论者的观点,如果有人可以篡改标准 /etc/redhat-release 文件或其他系统配置文件,那么您了解版本的方式是您的问题最少的问题。
此外,由于 RHEL 7.X 版本,您还可以尝试hostnamectl | grep 'Operating System'