我使用的是什么版本的 RHEL?

Art*_*ldt 152 linux redhat rhel4 rhel5 rhel6

在没有 root 权限的情况下,如何从 shell 确定我正在运行的 Red Hat Enterprise Linux 版本?

理想情况下,我想同时获得主要和次要版本,例如 RHEL 4.0 或 RHEL 5.1 等。

Zyp*_*her 154

您可以lsb_release在各种 Linux 发行版上使用该命令:

lsb_release -i -r 
Run Code Online (Sandbox Code Playgroud)

这将告诉您分发和版本,并且比访问管理员或软件包可能修改或未修改的文件更准确一些。以及跨多个发行版工作。

对于 RHEL,您应该使用:

cat /etc/redhat-release
Run Code Online (Sandbox Code Playgroud)

  • `lsb_release -i -r` -bash: lsb_release: 命令未找到。但是,`cat /etc/redhat-release` Red Hat Enterprise Linux Server release 5.6 (Tikanga) (26认同)
  • 仅供记录:不适用于 RHEL 6.5 最小安装。命令 lsb_release 无处可寻。 (7认同)
  • 在我的 CentOS 5.4 机器上找不到命令:( (5认同)
  • lsb_release 不是一个轻量级的包,它引入 CUPS 来提供'/usr/bin/lp',它引入一些 pdf 翻译 goop,它引入一些渲染库...... (4认同)

lar*_*sks 143

您可以查看 /etc/redhat-release 的内容,它看起来像这样:

$ cat /etc/redhat-release 
CentOS release 5.4 (Final)
Run Code Online (Sandbox Code Playgroud)

实际 RHEL 系统的内容是不同的。该技术适用于所有 RedHat 衍生产品,包括 CentOS、Fedora 等。

  • 这是对问题最恰当的回答。 (15认同)

eww*_*ite 25

我更喜欢使用 /etc/issue 文件。

$ cat /etc/issue
Run Code Online (Sandbox Code Playgroud)

我见过许多修改 /etc/redhat-release 以满足软件兼容性要求的情况(例如,Dell 或 HP 的管理代理)。

  • 这是不可靠的。显然,`/etc/issue` 是由 [agetty](http://www.linuxfromscratch.org/blfs/view/svn/postlfs/logon.html) 解析的,它用正确的信息替换了转义序列。如果你只是`cat`它,结果可能会令人印象深刻。在 Fedora 上,可以在 \m (\l) 上获得“Fedora release 20 (Heisenbug) Kernel \r”,它告诉您一些信息,但在 RHEL7 上,人们只会在 \m 上获得“\S Kernel \r”。 (6认同)

lza*_*zap 13

未安装 最可靠的方法是:lsb_release

# rpm -q --queryformat '%{VERSION}' redhat-release-server
6Server

# rpm -q --queryformat '%{RELEASE}' redhat-release-server
6.4.0.4.el6
Run Code Online (Sandbox Code Playgroud)

在最小安装中,lsb_release缺少。

要使其也与 Red Hat 克隆一起工作(归功于评论):

# rpm -q --queryformat '%{VERSION}' $(rpm -qa '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)')
Run Code Online (Sandbox Code Playgroud)

或者,作为单个命令(而不是执行两个“rpm”):

# rpm -qa --queryformat '%{VERSION}\n' '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)'
Run Code Online (Sandbox Code Playgroud)

使用sed/cut和其他文本操作 UNIX 工具来获得您想要的。

  • 这似乎更通用:`rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)'` sl 适用于 Scientific Linux;如果您知道其他 RHEL 重建的正确名称,请在下面发表评论。警告 - 未经广泛测试。 (2认同)
  • 或`rpm -qa | grep release` 更容易 (2认同)

TCa*_*ell 6

假设它确实是 Red Hat 版本(不是 Centos):

rpm -q redhat-release
Run Code Online (Sandbox Code Playgroud)

或者只是运行:

uname -r
Run Code Online (Sandbox Code Playgroud)

并映射输出。2.6.9 内核是 RHEL4,2.6.18 内核是 RHEL5。如有必要,您可以将完整版本映射到 Red Hat 的特定更新版本(即 2.6.9-89 是 RHEL5 U4)。